]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
Squashed 'dts/upstream/' changes from aaba2d45dc2a..b35b9bd1d4ee
authorTom Rini <trini@konsulko.com>
Mon, 1 Apr 2024 13:08:13 +0000 (09:08 -0400)
committerTom Rini <trini@konsulko.com>
Mon, 1 Apr 2024 13:08:13 +0000 (09:08 -0400)
b35b9bd1d4ee Merge tag 'v6.8-dts-raw'
1f50937554b4 Merge tag 'sound-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
576ba37bcbf9 Merge tag 'net-6.8-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
c83dc02bae3e Merge tag 'qcom-arm64-fixes-for-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
fb254675a395 ASoC: dt-bindings: nvidia: Fix 'lge' vendor prefix
c748b8a7dbe8 Merge tag 'tegra-for-6.8-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/fixes
a2e893adde74 Merge tag 'imx-fixes-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
abb0f1b369e4 Merge tag 'qcom-arm64-fixes-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
f143aa9a89ec Revert "arm64: dts: qcom: msm8996: Hook up MPM"
9a5690b7be49 arm64: dts: qcom: sc8280xp-x13s: limit pcie4 link speed
ca6dcb63bd34 arm64: dts: qcom: sc8280xp-crd: limit pcie4 link speed
8532bb680bd0 dt-bindings: net: renesas,ethertsn: Document default for delays
42569705a4a0 Merge tag 'v6.8-rc6-dts-raw'
06c62487a0b4 arm64: dts: imx8mp: Fix LDB clocks property
7c93039778e4 arm64: dts: imx8mp: Fix TC9595 reset GPIO on DH i.MX8M Plus DHCOM SoM
7f9a36c5ce39 ARM: dts: imx7: remove DSI port endpoints
87ea8526eaf3 Merge tag 'loongarch-fixes-6.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
d4a4b892cd33 Merge tag 'arm-fixes-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
4faf103c7468 Merge tag 'renesas-fixes-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/fixes
c1858748b935 Merge tag 'riscv-dt-fixes-for-v6.8-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes
f1bb487d660f LoongArch: dts: Minor whitespace cleanup
b60485a78d66 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
d641a222a5d4 arm64: tegra: Fix Tegra234 MGBE power-domains
31aeabc2669e ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes
8c5d69d4f1e9 arm64: dts: qcom: Fix interrupt-map cell sizes
43b35c5b7347 arm: dts: Fix dtc interrupt_map warnings
f00ce91341b9 arm64: dts: Fix dtc interrupt_provider warnings
c21ad68d3254 arm: dts: Fix dtc interrupt_provider warnings
20a9f605f025 Merge tag 'v6.8-rockchip-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
1d9be1dcae7c Merge tag 'imx-fixes-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
c27426925b7b Merge tag 'v6.8-rc5-dts-raw'
582c3e28f603 Merge tag 'sound-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
81da29f3007e arm64: tegra: Set the correct PHY mode for MGBE
30e4bc5d76ff Merge tag 'devicetree-fixes-for-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
f0c34a9f448e riscv: dts: sifive: add missing #interrupt-cells to pmic
db36be2a8839 arm64: dts: rockchip: Correct Indiedroid Nova GPIO Names
ec7d411e57d6 arm64: dts: rockchip: Drop interrupts property from rk3328 pwm-rockchip node
105b1e4e5e28 arm64: dts: rockchip: set num-cs property for spi on px30
a05f0ca9a008 arm64: dts: rockchip: minor rk3588 whitespace cleanup
41d6b3786aa9 riscv: dts: starfive: replace underscores in node names
910c8965eb0c dt-bindings: ufs: samsung,exynos-ufs: Add size constraints on "samsung,sysreg"
d78e8a541b0a net: marvell,prestera: Fix example PCI bus addressing
b40e56bea854 ASoC: dt-bindings: google,sc7280-herobrine: Drop bouncing @codeaurora
48b3246a26fe Revert "arm64: dts: imx8mn-var-som-symphony: Describe the USB-C connector"
a1c414f8f89a Revert "arm64: dts: imx8mp-dhcom-pdk3: Describe the USB-C connector"
768ad06f1efa arm64: dts: tqma8mpql: fix audio codec iov-supply
77040f90f388 Merge tag 'v6.8-rc3-dts-raw'
65143ffc8608 arm64: dts: rockchip: drop unneeded status from rk3588-jaguar gpio-leds
39497955d1c0 ARM: dts: rockchip: Drop interrupts property from pwm-rockchip nodes
610e244453be arm64: dts: rockchip: Fix the num-lanes of pcie3x4 on Cool Pi CM5 EVB
d6e600aea013 arm64: dts: rockchip: rename vcc5v0_usb30_host regulator for Cool Pi CM5 EVB
6be17990ec10 arm64: dts: rockchip: aliase sdmmc as mmc1 for Cool Pi CM5 EVB
77765eecb670 arm64: dts: rockchip: aliase sdmmc as mmc1 for Cool Pi 4B
7bca62b5ae66 arm64: dts: qcom: sm6115: Fix missing interconnect-names
b2bc58ba4504 arm64: dts: imx8mp: Disable UART4 by default on Data Modul i.MX8M Plus eDM SBC
9474eb5c3d86 ALSA: Various fixes for Cirrus Logic CS35L56 support
1e8df48d4da1 dt-bindings: tpm: Drop type from "resets"
4d5c46ab184f dt-bindings: display: nxp,tda998x: Fix 'audio-ports' constraints
fede8bd8306c dt-bindings: xilinx: replace Piyush Mehta maintainership
eb691d1ece78 Merge tag 'v6.8-rc2-dts-raw'
5b093a56e797 ASoC: sun4i-spdif: Add Allwinner H616 compatible
f2ce9dca7322 ASoC: sun4i-spdif: Fix requirements for H6
fd23c7505f20 arm64: dts: qcom: sm8650-mtp: add gpio74 as reserved gpio
cfbd9243ac13 arm64: dts: qcom: sm8650-qrd: add gpio74 as reserved gpio
101ce3470b0e Merge tag 'drm-fixes-2024-01-27' of git://anongit.freedesktop.org/drm/drm
71ca3bf1c96e Merge tag 'arm-fixes-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
74c898882ebb riscv: dts: sophgo: separate sg2042 mtime and mtimecmp to fit aclint format
28b77b56d972 arm64: dts: rockchip: mark system power controller on rk3588-evb1
986a9f1778ef Merge tag 'samsung-fixes-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/fixes
6cf0227916ec arm64: dts: Fix TPM schema violations
60245a9006e9 ARM: dts: Fix TPM schema violations
92924d8db61a Merge tag 'exynos-drm-fixes-for-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes
3b240d0d94a9 dt-bindings: media: Remove K3 Family Prefix from Compatible
186b38b97035 ARM: dts: exynos4212-tab3: add samsung,invert-vclk flag to fimd
c4f0c99dffb8 arm64: dts: exynos: gs101: comply with the new cmu_misc clock names
429796fee0f1 dt-bindings: clock: gs101: rename cmu_misc clock-names
80d76b25d32f Merge tag 'v6.8-rc1-dts-raw'
339d8d1caab5 Merge tag 'timers-core-2024-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
df1980733ce9 Merge tag 'dmaengine-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
8c23badf69c3 Merge tag 'riscv-for-linus-6.8-mw4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
d5a95e32a555 Merge tag 'loongarch-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
815e38060bf4 Merge tag 'sound-fix-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
f07a1b362766 Merge tag 'for-v6.8-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
9411a3099e9c Merge tag 'i2c-for-6.8-rc1-rebased' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
fcb7108dc362 Merge tag 'rtc-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
8e06ce5908ff Merge tag 'input-for-v6.8-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
7b18579c0bef Merge tag 'phy-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
dd4871a00012 Merge tag 'gpio-fixes-for-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
8dfd2acd2c0c Merge tag 'backlight-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
736ecd5cf03c Merge tag 'iommu-updates-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
7d29a06cb311 dt-bindings: i2c: document st,stm32mp25-i2c compatible
365a95704e98 dt-bindings: at24: add ROHM BR24G04
05d2a9834fd6 Merge tag 'usb-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
70a7bee43907 Merge tag 'tty-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
6a04bf7a4f07 Merge tag 'char-misc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
e0c35697cd80 Merge tag 'pci-v6.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
cf29a14b0a23 Merge tag 'pinctrl-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
902219ef9ed0 Merge tag 'mailbox-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
c437f65015a8 Merge tag 'leds-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
d0902d05b4a0 Merge tag 'mfd-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
8be1d4636d32 Merge tag 'rproc-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
6eaaddf12639 Merge tag 'riscv-for-linus-6.8-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
2cb012b6fe68 LoongArch: dts: DeviceTree for Loongson-2K2000
6ab0a6f08b83 LoongArch: dts: DeviceTree for Loongson-2K1000
491426707de1 LoongArch: dts: DeviceTree for Loongson-2K0500
c007f27059d1 dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
d9a3ae336ecb dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
4ee19a9d7583 dt-bindings: loongarch: Add Loongson SoC boards compatibles
3e99ee3f7c53 dt-bindings: loongarch: Add CPU bindings for LoongArch
e8bc7c9c625e dt-bindings: don't anchor DT_SCHEMA_FILES to bindings directory
f5918b47370e dt-bindings: rtc: max31335: add max31335 bindings
7e34d7b53615 rtc: rv8803: add wakeup-source support
81d186f05921 Merge branch 'pci/dt-bindings'
8bd798490681 Merge branch 'pci/controller/rcar'
e166e5aad3b0 Merge branch 'pci/controller/cadence'
9de355a75fde dt-bindings: gpio: xilinx: Fix node address in gpio
28bf1e4e9775 dt-bindings: mailbox: qcom-ipcc: document the X1E80100 Inter-Processor Communication Controller
f6b31bdd3c60 dt-bindings: mailbox: add Versal IPI bindings
c3301d070937 dt-bindings: mailbox: zynqmp: extend required list
6bf977408719 dt-bindings: mailbox: qcom,apcs-kpss-global: use fallbacks
b9ea63718a7e dt-bindings: mailbox: qcom,apcs-kpss-global: drop duplicated qcom,ipq8074-apcs-apps-global
e485b251a3a4 Merge tag 'devicetree-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
60edd8755b1b Merge tag 'pwm/for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
f946a0610062 Merge tag 'hid-for-linus-2024010801' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
5a9222178c60 Merge tag 'media/v6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
0c57fa00ac11 Merge tag 'mmc-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
120152dd192c Merge tag 'pmdomain-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
f25acec1f182 Merge tag 'gnss-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss
040b6611cd72 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
432f2b929aa4 Merge tag 'gpio-updates-for-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
5df1a59e6086 Merge tag 'linux-watchdog-6.8-rc1' of git://www.linux-watchdog.org/linux-watchdog
1d81fba29be6 Merge tag 'hwmon-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
dd7110d3d5d1 Merge tag 'sound-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
c916bd7a1d38 Merge tag 'drm-next-2024-01-10' of git://anongit.freedesktop.org/drm/drm
32704b03c7ec Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
c0d1d21fe5ff dt-bindings: fpga: altera: Convert bridge bindings to yaml
86986ec77fc7 dt-bindings: fpga: Convert bridge binding to yaml
149beabce38e dt-bindings: vendor-prefixes: Add smi
da831df01407 Merge tag 'soc-drivers-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
d0949aef9e29 Merge tag 'soc-dt-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
c5ee04d9a430 Merge tag 'net-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
17d4b2f2c7c6 dt-bindings: riscv: Document cbop-block-size
6361e08793d7 dt-bindings: riscv: permit numbers in "riscv,isa"
99f0fa81f51f dt-bindings: riscv: cpus: Clarify mmu-type interpretation
5744984c407c ARM: dts: usr8200: Fix phy registers
fd6e692990ee dt-bindings: PCI: brcmstb: Add property "brcm,clkreq-mode"
db07ea081cee dt-bindings: power: Clarify wording for wakeup-source property
9deb5d7e7649 Merge tag 'v6.8-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
f412e763e552 dt-bindings: mfd: sprd: Add support for UMS9620
b50b2489e1a2 dt-bindings: input: bindings for Adafruit Seesaw Gamepad
9fcf5401177c Merge patch series "riscv: hwprobe: add Zicond, Zacas and Ztso support"
6b479ffcb9ed dt-bindings: riscv: add Zacas ISA extension description
45e895d242d0 Merge remote-tracking branch 'palmer/fixes' into for-next
129abc9e5b89 Merge tag 'thermal-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
72e795875f31 Merge tag 'mtd/for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
a0d6ec02f5dd Merge tag 'spi-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
092d72f89f32 Merge tag 'regulator-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
f19bbcb501a1 Merge branch 'clk-rs9' into clk-next
6c5ff3361f38 Merge branches 'clk-zynq', 'clk-xilinx' and 'clk-stm' into clk-next
5348f28123c3 Merge branches 'clk-imx', 'clk-qcom', 'clk-amlogic' and 'clk-mediatek' into clk-next
dde8a0d89600 Merge branches 'clk-versa', 'clk-silabs', 'clk-samsung', 'clk-starfive' and 'clk-sophgo' into clk-next
147299598f64 dt-bindings: ignore paths outside kernel for DT_SCHEMA_FILES
5e8ad2415574 dt-bindings: tpm: Document Microsoft fTPM bindings
4446def763e6 dt-bindings: tpm: Convert IBM vTPM bindings to DT schema
d46251bba773 dt-bindings: tpm: Convert Google Cr50 bindings to DT schema
4c0c46fcf77f dt-bindings: tpm: Consolidate TCG TIS bindings
fc825b2e9d71 dt-bindings: display: rockchip,inno-hdmi: Document RK3128 compatible
5d51cf126484 dt-bindings: arm: Add remote etm dt-binding
32c458bd3442 dt-bindings: mmc: sdhci-pxa: Fix 'regs' typo
c9ab453dff7c media: dt-bindings: samsung,s5p-mfc: Fix iommu properties schemas
481554b6b752 dt-bindings: display: panel: Add synaptics r63353 panel controller
e04e21bef16e dt-bindings: arm: merge qcom,idle-state with idle-state
452e35e6ff26 Merge tag 'irq-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
d35742374b96 dt-bindings: display: samsung,exynos-mixer: Fix 'regs' typo
ac8ffc6d0764 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
daf5be0b133e Merge tag 'powerpc-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
b633610fad05 Revert "net: stmmac: Enable Per DMA Channel interrupt"
fc2b6856183b dt-bindings: rtc: qcom-pm8xxx: fix inconsistent example
5c111c61a49a dt-bindings: net: snps,dwmac: per channel irq
94d319464237 ASoC: dt-bindings: move tas2563 from tas2562.yaml to tas2781.yaml
8fbbcaccc3ff Merge tag 'socfpga_dts_updates_for_v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt
1161aaee27ae dt-bindings: mmc: add Marvell ac5
e9a747531a5d dt-bindings: mmc: brcm,sdhci-brcmstb: Add support for 74165b0
57b4e3b1199f Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
cab393f5e80d dt-bindings: serial: Describe ARM dcc interface
1d92607a561e dt-bindings: usb: dwc3: Limit num-hc-interrupters definition
cee9797861a0 dt-bindings: usb: xhci: Add num-hc-interrupters definition
4823f8dd230f arm64: dts: mediatek: mt8195: Add 'rx-fifo-depth' for cherry
4a4f48930e20 dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue
4ddd871b77e8 arm64: dts: qcom: msm8996: Remove PNoC clock from MSS
5598c7c58459 arm64: dts: qcom: msm8996: Remove AGGRE2 clock from SLPI
a06133f3b90d arm64: dts: qcom: msm8998: Remove AGGRE2 clock from SLPI
0e31729b965a arm64: dts: qcom: msm8939: Drop RPM bus clocks
a9231f1fa44d arm64: dts: qcom: sdm630: Drop RPM bus clocks
7806d0946f48 arm64: dts: qcom: qcs404: Drop RPM bus clocks
6bbd4a339ffd arm64: dts: qcom: msm8996: Drop RPM bus clocks
6c5785d4dec0 arm64: dts: qcom: msm8916: Drop RPM bus clocks
d99558e0d6ba dt-bindings: usb: qcom,dwc3: Fix SDM660 clock description
0e7834fa9ba2 dt-bindings: usb: dwc3: Clean up hs_phy_irq in binding
f7405c1062e5 dt-bindings: connector: Add child nodes for multiple PD capabilities
a2f2b957f7b0 arm64: dts: intel: minor whitespace cleanup around '='
a21ad91a14ac arm64: dts: socfpga: agilex: drop redundant status
c64326a0161d arm64: dts: socfpga: agilex: add unit address to soc node
70eea150a8db arm64: dts: socfpga: agilex: move firmware out of soc node
056acfded5ce arm64: dts: socfpga: agilex: move FPGA region out of soc node
8e373ef160c7 arm64: dts: socfpga: agilex: align pin-controller name with bindings
56a65e118b36 arm64: dts: socfpga: stratix10_swvp: drop unsupported DW MSHC properties
5ea405da6608 arm64: dts: socfpga: stratix10_socdk: align NAND chip name with bindings
0bc2b8deec9a arm64: dts: socfpga: stratix10: add unit address to soc node
3932c6fc63c2 arm64: dts: socfpga: stratix10: move firmware out of soc node
174dfac57ae2 arm64: dts: socfpga: stratix10: move FPGA region out of soc node
e63c11b1c86c arm64: dts: socfpga: stratix10: align pincfg nodes with bindings
5ad3116fb135 arm64: dts: socfpga: stratix10: add clock-names to DWC2 USB
9185b800f9c3 arm64: dts: socfpga: drop unsupported cdns,page-size and cdns,block-size
b3832f4d101c ARM: dts: socfpga: align NAND controller name with bindings
7772fcc4eef4 ARM: dts: socfpga: drop unsupported cdns,page-size and cdns,block-size
f466442c93ff dt-bindings: clock: mediatek: add clock controllers of MT7988
967ed08fdbd4 dt-bindings: reset: mediatek: add MT7988 ethwarp reset IDs
8bb435f3ea7d dt-bindings: clock: mediatek: add MT7988 clock IDs
8b8c659b2121 dt-bindings: clock: sophgo: Add clock controller of CV1800 series SoC
b822e804fd2c dt-bindings: gpio: add NPCM sgpio driver bindings
f4c19e862d2b dt-bindings: gpio: realtek: Add realtek,rtd-gpio
6690161ed7a9 Merge branches 'apple/dart', 'arm/rockchip', 'arm/smmu', 'virtio', 'x86/vt-d', 'x86/amd' and 'core' into next
7382fa53a648 dt-bindings: net: renesas,etheravb: Document RZ/G3S support
247b8886892f dt-bindings: hwmon: (lm75) Add AMS AS6200 temperature sensor
fec847c57a81 dt-bindings: Add MP2856/MP2857 voltage regulator device
42c42ff6c177 dt-bindings: hwmon: gpio-fan: Convert txt bindings to yaml
6c13c9d07051 dt-bindings: mmc: sdhci-msm: document dedicated IPQ4019 and IPQ8074
1e934476b96c dt-bindings: mmc: synopsys-dw-mshc: add iommus for Intel SocFPGA
82a434279c9e dt-bindings: HID: i2c-hid: elan: Introduce Ilitek ili2901
5fa4567d6c4f Merge tag 'v6.8-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
a04786e0b7e0 Merge tag 'v6.8-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
0bf9a2425459 Merge tag 'qcom-arm64-for-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
a3fde0732d5b Merge tag 'qcom-arm32-for-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
62073621d812 Merge tag 'arm-soc/for-6.8/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
4cfe8fd4e2b4 Merge tag 'sprd-dt-6.8-rc1' of https://github.com/lyrazhang/linux into soc/dt
a355b8e8cbdd dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Clean up examples
36a030b546d0 dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Fix example node names
ca1c0a8c8091 dt-bindings: thermal: sun8i: Add binding for D1/T113s THS controller
7123707b90de dt-bindings: thermal-zones: Document critical-action
c29ec9b83fd7 dt-bindings: thermal: qcom-tsens: document the SM8650 Temperature Sensor
5a12787401b5 dt-bindings: thermal: loongson,ls2k-thermal: Fix binding check issues
0a6d923c5231 dt-bindings: thermal: convert Mediatek Thermal to the json-schema
dc5dd3862b77 dt-bindings: input: iqs269a: Add bindings for OTP variants
5aa00301cee3 dt-bindings: input: iqs269a: Add bindings for slider gestures
c4635c803af3 Merge tag 'iio-for-6.8b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
571d91b8d8df arm64: dts: rockchip: Fix led pinctrl of lubancat 1
548cbdf62c21 arm64: dts: rockchip: correct gpio_pwrctrl1 typo on nanopc-t6
86c28823371d arm64: dts: rockchip: correct gpio_pwrctrl1 typo on rock-5b
275bc737b480 arm64: dts: rockchip: support poweroff on the rock-5b
e4f7332bb7f8 arm64: dts: rockchip: Support poweroff on Orange Pi 5
d0c46aeba839 arm64: dts: rockchip: nanopc-t6 sdmmc beautification
df73c00bc509 arm64: dts: sprd: Change UMS512 idle-state nodename to match bindings
12243eba2b74 arm64: dts: sprd: Add clock reference for pll2 on UMS512
af72bfcc73f3 arm64: dts: sprd: Removed unused clock references from etm nodes
d8f5562e697b arm64: dts: sprd: Add support for Unisoc's UMS9620
bd8f67f82f65 dt-bindings: arm: Add compatible strings for Unisoc's UMS9620
9da3db96fae0 arm64: dts: sprd: fix the cpu node for UMS512
3ebc08960525 Merge tag 'v6.7-rc7' into gpio/for-next
cb90fcbed71e dt-bindings: timer: Add StarFive JH8100 clint
6f2b19f4df72 dt-bindings: timer: thead,c900-aclint-mtimer: separate mtime and mtimecmp regs
4421b3e3124f dt-bindings: iio: Add AD7091R-8
51a0454cffd6 dt-bindings: power: supply: bq24190: Add BQ24296 compatible
4639caeeab2f dt-bindings: power: reset: xilinx: Rename node names in examples
c873132667ed dt-bindings: power: reset: qcom-pon: fix inconsistent example
64cf7a912b11 arm64: dts: rockchip: Fix rk3588 USB power-domain clocks
815a2542ad42 arm64: dts: rockchip: configure eth pad driver strength for orangepi r1 plus lts
9df823a6207b arm64: dts: rockchip: Support poweroff on NanoPC-T6
78bd00069022 arm64: dts: rockchip: rk3308-rock-pi-s gpio-line-names cleanup
9d6e0741ae7c arm64: dts: rockchip: Add support for rk3588 based board Cool Pi CM5 EVB
a64a2e009e21 dt-bindings: arm: rockchip: Add Cool Pi CM5
4397d62daec8 arm64: dts: rockchip: Add support for rk3588s based board Cool Pi 4B
f1a9c321e26f dt-bindings: arm: rockchip: Add Cool Pi 4B
1e413c69529f dt-bindings: vendor-prefixes: Add Cool Pi
a67ded35095e arm64: dts: rockchip: add gpio-line-names to rk3328-rock-pi-e
e0ec5767b690 ARM: dts: rockchip: Remove rockchip,default-sample-phase from rk3036.dtsi
75e0afe6681c ARM: dts: rockchip: Add stdout-path for rk3036 kylin
5b38dc06a1e9 dt-bindings: watchdog: qcom,pm8916-wdt: add parent spmi node to example
d2f78877f2ea dt-bindings: watchdog: nxp,pnx4008-wdt: convert txt to yaml
af1fdc5cd02d dt-bindings: watchdog: qca,ar7130-wdt: convert txt to yaml
5c3d9631b9ac dt-bindings: watchdog: intel,keembay: reference common watchdog schema
6d86f883fd9c dt-bindings: watchdog: re-order entries to match coding convention
e28051167c06 dt-bindings: touchscreen: neonode,zforce: Use standard properties
3119a224ac1c dt-bindings: touchscreen: convert neonode,zforce to json-schema
15bf36928144 Merge tag 'icc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
dd37eb39a550 dt-bindings: input: convert drv266x to json-schema
795f4eddfec7 Merge tag 'qcom-arm64-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
991ab34b2120 Merge tag 'reset-for-v6.8' of git://git.pengutronix.de/pza/linux into soc/drivers
4e7b4659bc67 dt-bindings: mtd: partitions: u-boot: Fix typo
35dd951a7fd5 Merge tag 'riscv-cache-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers
69b18d58cc6d Merge tag 'riscv-soc-drivers-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers
fc5aa9bf69fd Merge tag 'samsung-drivers-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/drivers
84c9739eb5b5 Merge tag 'qcom-drivers-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
0ef14d7a1f46 dt-bindings: crypto: qcom-qce: document the SC7280 crypto engine
2fd8394e6d9f dt-bindings: crypto: qcom-qce: constrain clocks for SM8150-compatible QCE
40fd9d4f3234 dt-bindings: crypto: qcom-qce: constrain clocks for IPQ9574 QCE
30960ac02d6e dt-bindings: rng: starfive: Add jh8100 compatible string
e6272a79f69c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
dcd8ac1c5dd8 dt-bindings: spi: stm32: add st,stm32mp25-spi compatible
87166d1d3f3f Merge tag 'riscv-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
69abc2365d38 dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add X1E80100 USB PHY binding
822a13d2bf90 dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document X1E80100 compatible
6722c7fe2a57 dt-bindings: phy: qcom: snps-eusb2: Document the X1E80100 compatible
a38a399bccf1 dt-bindings: phy: mediatek: tphy: add a property for force-mode switch
ca521e2ecf25 dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: fix path to header
aa156a9707ec Merge tag 'amlogic-arm64-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
e6127e00f352 Merge tag 'mvebu-dt64-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
aad08c0a0671 Merge tag 'mvebu-dt-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
e4320c558711 Merge tag 'samsung-dt64-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
077793e138f6 Merge tag 'qcom-arm32-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
7ff5e1692425 Merge tag 'ti-k3-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
f009c98b2a3f dt-bindings: iio: dac: add MCP4821
e46c2c536959 Merge tag 'ti-keystone-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
edeab43af36b Merge tag 'zynqmp-dt-for-6.8' of https://github.com/Xilinx/linux-xlnx into soc/dt
4e78ad68f722 Merge tag 'imx-dt64-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
f4ece4b3d883 Merge tag 'imx-dt-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
1a2b6b1db701 Merge tag 'imx-bindgins-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
71e20fbc3d5b Merge tag 'ux500-dts-soc-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/dt
056c9efa37c5 Merge tag 'renesas-dts-for-v6.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
339491d0999f Merge tag 'stm32-dt-for-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
06086605676a dt-bindings: dma: fsl-edma: Add fsl-edma.h to prevent hardcoding in dts
640904451ab8 dt-bindings: dmaengine: Add Loongson LS2X APB DMA controller
f88d59ec5d12 Merge tag 'sunxi-dt-for-6.8-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
e833ff47f9b9 Merge tag 'at91-dt-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
9f821c027b01 Merge tag 'juno-update-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
4bab8a451f49 Merge tag 'v6.8-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
a4789dd06449 Merge tag 'v6.8-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
5045526f0b7c Merge tag 'mtk-dts64-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
a7603f8260b8 Merge tag 'samsung-dt-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
16a1d6e0b098 Merge tag 'samsung-dt64-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
0f1f66f39700 ARM: dts: ste: minor whitespace cleanup around '='
22532c5d3f4a Merge tag 'omap-for-v6.8/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/dt
5288e13a2ad4 Merge tag 'hisi-arm64-dt-for-6.8' of https://github.com/hisilicon/linux-hisi into soc/dt
f44f238cabce Merge tag 'w1-drv-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1 into char-misc-next
61f41fa45eaf Merge tag 'iio-for-6.8a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
07d575b06ff9 dt-bindings: pwm: ti,pwm-omap-dmtimer: Update binding for yaml
fc02de1f5dc0 dt-bindings: riscv: cpus: Add AMD MicroBlaze V compatible
780449a81d3c dt-bindings: pwm: remove Xinlei's mail
f96dd7edb887 arm64: dts: qcom: sc8180x: Fix up PCIe nodes
b1ecf20e17e0 arm64: dts: qcom: sc8180x: Mark PCIe hosts cache-coherent
eeed8f113289 dt-bindings: pinctrl: xilinx: Rename *gpio to *gpio-grp
2ef9211e8711 dt-bindings: pinctrl: qcom: drop common properties and allow wakeup-parent
188c161805d3 dt-bindings: pinctrl: qcom: drop common properties
7834682c0d2c dt-bindings: pinctrl: qcom,ipq5018-tlmm: use common TLMM bindings
c31ea3c9600f dt-bindings: pinctrl: qcom,x1e80100-tlmm: restrict number of interrupts
6cec6f6f090c dt-bindings: pinctrl: qcom,sm8650-tlmm: restrict number of interrupts
ef7b1c134921 dt-bindings: pinctrl: qcom,sm8550-tlmm: restrict number of interrupts
a3abecdd0e2e dt-bindings: pinctrl: qcom,sdx75-tlmm: restrict number of interrupts
2b1d1c0dd621 dt-bindings: pinctrl: qcom,sa8775p-tlmm: restrict number of interrupts
36f8bb953634 dt-bindings: pinctrl: qcom,qdu1000-tlmm: restrict number of interrupts
670ced18d87f dt-bindings: pinctrl: qcom: create common LPASS LPI schema
5ca197c58799 dt-bindings: pinctrl: qcom: Add SM4450 pinctrl
8d27a131f7ad dt-bindings: pinctrl: qcom,pmic-mpp: clean up example
6674c2217ce1 Merge tag 'mediatek-drm-next-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
d7dde4a72dfa Merge tag 'drm-msm-next-2023-12-15' of https://gitlab.freedesktop.org/drm/msm into drm-next
64ddcb330a18 arm64: dts: qcom: x1e80100-qcp: Fix supplies for some LDOs in PM8550
206ab99c38ce arm64: dts: qcom: sm8550: Update idle state time requirements
319f395fbc2a arm64: dts: qcom: sm8550: Separate out X3 idle state
af2f75b56294 ARM: dts: qcom: sdx55: Fix the base address of PCIe PHY
4a72661b117b arm64: dts: qcom: ipq6018: fix clock rates for GCC_USB0_MOCK_UTMI_CLK
5b72e989a37a arm64: dts: qcom: x1e80100: align mem timer size cells with bindings
b17d7383c10f arm64: dts: qcom: sc7280: Mark SDHCI hosts as cache-coherent
3840ead2163a ARM: dts: qcom: sdx55: fix USB SS wakeup
9e773fad2487 ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts
d0728def7588 ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells'
0ee9dac79d46 ASoC: qcom: add sound card support for SM8650
345b970f1857 add es8326 dt-bindings, commonize headset codec
85a45459eeed GPIO inclusion fixes to misc sound drivers
616e88e1109d arm64: dts: qcom: sc8180x: fix USB SS wakeup
f3d1b2acf659 arm64: dts: qcom: sdm670: fix USB SS wakeup
987f42804a25 arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
2e58236aa851 ASoC: dt-bindings: qcom,lpass-va-macro: remove spurious contains in if statement
bded77d8cc7b dt-bindings: regulator: qcom,usb-vbus-regulator: clean up example
e1481a467961 powerpc/fsl: Fix fsl,tmu-calibration to match the schema
26e2fad496d4 arm64: dts: amlogic: fix format for s4 uart node
8a5115be3855 arm64: dts: amlogic: drop redundant status=okay
799049c22bf2 arm64: dts: amlogic: enable some nodes for board AQ222
3fea93dcdd73 arm64: dts: amlogic: add some device nodes for S4
44721ac7f4da Merge tag 'drm-misc-next-2023-12-14' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
d623bb97a280 Merge tag 'samsung-pinctrl-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
81d84dd62616 ASoC: dt-bindings: qcom,lpass-rx-macro: Add X1E80100 LPASS WSA
4f673348bd77 ASoC: dt-bindings: qcom,lpass-rx-macro: Add X1E80100 LPASS VA
d5b1bc404268 ASoC: dt-bindings: qcom,lpass-rx-macro: Add X1E80100 LPASS TX
40420db77069 ASoC: dt-bindings: qcom,lpass-rx-macro: Add X1E80100 LPASS RX
605001444f21 ASoC: dt-bindings: qcom,sm8250: Add X1E80100 sound card
4e179f2c3905 ASoC: dt-bindings: mt8188-mt6359: add es8326 support
0c819517fcb2 ASoC: dt-bindings: qcom,sm8250: document SM8650 sound card
0292b51ac8c4 ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors
4c6bc6503e5e Merge tag 'device_is_big_endian-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core into gpio/for-next
31d8096d43a1 dt-bindings: gpio: dwapb: allow gpio-ranges
873d4c02bbfa dt-bindings: clock: google,gs101: rename CMU_TOP gate defines
bfc73914844a dt-bindings: clock: si5351: add PLL reset mode property
af0493badd9d dt-bindings: clock: si5351: convert to yaml
d1a5fb288be1 dt-bindings: stm32: add clocks and reset binding for stm32mp25 platform
ee353e29bfb4 dt-bindings: clk: rs9: Add 9FGV0841
48b20705829d dt-bindings: clock: brcm,kona-ccu: convert to YAML
b2b282bb3ba9 dt-bindings: arm: mediatek: move ethsys controller & convert to DT schema
e35ce136c12f dt-bindings: clock: xilinx: add versal compatible
746818ace7a3 dt-bindings: rtc: Add Nuvoton ma35d1 rtc
d8c717fd9bc8 dt-bindings: Remove alt_ref from versal
e9caccbf099c arm64: dts: qcom: sc8180x-primus: Allow UFS regulators load/mode setting
b616df631790 arm64: dts: qcom: sc8180x: Describe the GIC redistributor
ae7e39a80f0f arm64: dts: qcom: sc8180x: Add interconnects to UFS
0f32e7aa54e0 arm64: dts: qcom: sc8180x: Add missing MDP clocks
3641f17d731d arm64: dts: qcom: sc8180x: Add UFS GDSC
2bbb23973697 arm64: dts: qcom: sc7280*: move MPSS and WPSS memory to dtsi
a5b4605b6fc6 ARM: dts: qcom: msm8974*: Re-enable remoteprocs on various boards
f1ecb44efc55 ARM: dts: qcom: msm8974: Remove bogus cd-gpio pinctrl
9dd85d38d004 ARM: dts: qcom: msm8974-klte: Remove unused property
34c2fdcebf94 arm64: dts: qcom: sc7280: Rename reserved-memory nodes
84a50703ca7d dt-bindings: remoteproc: qcom: sc7180-pas: Add SC7280 compatibles
47f83514132e dt-bindings: remoteproc: qcom: sc7180-pas: Fix SC7280 MPSS PD-names
1dce719ef64f arm64: dts: qcom: sc7280: Remove unused second MPSS reg
afedac693f18 arm64: dts: qcom: sdm670: add display subsystem
1d8d2d147ea5 dt-bindings: soc: qcom,aoss-qmp: document the X1E80100 Always-On Subsystem side channel
3ea56a52a7c2 dt-bindings: wdt: Add ts72xx
18522cdf3ec6 dt-bindings: watchdog: dlg,da9062-watchdog: Document DA9063 watchdog
688fe0bdd724 dt-bindings: watchdog: dlg,da9062-watchdog: Add fallback for DA9061 watchdog
9054003bb13e dt-bindings: watchdog: mediatek,mtk-wdt: add MT7988 watchdog and toprgu
63d466a6e3b3 dt-bindings: watchdog: realtek,rtd1295-watchdog: convert txt to yaml
5b6c41392896 dt-bindings: watchdog: qcom-wdt: Make the interrupt example edge triggered
4f8423c375eb dt-bindings: iio: chemical: add aosong,ags02ma
766801c2fc4b dt-bindings: vendor-prefixes: add aosong
530dcc2cff54 arm64: dts: qcom: sm8150-hdk: enable DisplayPort and USB-C altmode
a63d7ac5c9ca arm64: dts: qcom: sm8150: add USB-C ports to the OTG USB host
6177bf5ba3b4 arm64: dts: qcom: sm8150: add USB-C ports to the USB+DP QMP PHY
cccb449ab331 arm64: dts: qcom: sm8150: add DisplayPort controller
414013ad4921 arm64: dts: qcom: sm8150-hdk: fix SS USB regulators
94e5a8422a14 arm64: dts: qcom: sm8150-hdk: enable HDMI output
94cd2b0ff062 arm64: dts: qcom: sm8150: make dispcc cast minimal vote on MMCX
d8577fce5e20 arm64: dts: qcom: sm8650: add fastrpc-compute-cb nodes
e14f9c1044bd arm64: dts: qcom: sm8550-qrd: add PM8010 regulators
66e97e0962a7 arm64: dts: qcom: sm8550-mtp: Add pm8010 regulators
6437200479ec arm64: dts: qcom: qcm2290: Hook up MPM
75b87eb7e3ee arm64: dts: qcom: msm8996: Hook up MPM
e043072a3a33 arm64: dts: qcom: sm6375: Hook up MPM
623a6180066f dt-bindings: arm: qcom: Add Motorola Moto G 4G (2013)
030e5c73208a arm64: dts: qcom: x1e80100-crd: Fix supplies for some LDOs in PM8550
58e87053c1f0 arm64: dts: qcom: sc7280: add QCrypto nodes
6d138c9b4127 arm64: dts: qcom: sc7180: Switch pompom to the generic edp-panel
9248e79cd654 arm64: dts: qcom: sm8150: fix USB SS wakeup
8143f0f67202 arm64: dts: qcom: sm8150: fix USB DP/DM HS PHY interrupts
1d46c82d351b arm64: dts: qcom: sdm845: fix USB SS wakeup
5c261eb8cd11 arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
2998fdbc15fe arm64: dts: qcom: sc8180x: fix USB DP/DM HS PHY interrupts
220ee261025f arm64: dts: qcom: sm8550: drop unneeded assigned-clocks from codec macros
ef2823c0a498 arm64: dts: qcom: sm8550: move Soundwire pinctrl to its nodes
611112fa3972 arm64: dts: qcom: sm8450: drop unneeded assigned-clocks from codec macros
7fe6ee08b28c arm64: dts: qcom: sm8450: move Soundwire pinctrl to its nodes
eb6e95625c03 arm64: dts: qcom: sm8550: add missing two RX Soundwire ports in configuration
6f45533e32ad arm64: dts: qcom: sm8650: drop unneeded assigned-clocks from WSA macro
108c60eb7746 dt-bindings: arm: qcom: Fix up htc-memul compatible
c493fe546f0a arm64: dts: qcom: sm6115: Hook up interconnects
fd22f3a58a9e Merge branch 'icc-sm6115' of https://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into HEAD
85a531800a07 ARM: dts: qcom: msm8926-motorola-peregrine: Add initial device tree
9c323b20cda8 ARM: dts: qcom: ipq4019: add dedicated SDHCI compatible
2fcaa70bfc3c arm64: dts: qcom: ipq8074: add dedicated SDHCI compatible
757c981838e3 arm64: dts: qcom: Fix coresight warnings in in-ports and out-ports
34e4f27862d1 arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
61e7df01e058 arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
786be94e8465 arm64: dts: qcom: qrb5165-rb5: add the Bluetooth node
fe9d727180d2 arm64: dts: qcom: sa8775p: Add missing space between node name and braces
8df2548eb151 arm64: dts: qcom: Use "pcie" as the node name instead of "pci"
756ec289cf35 ARM: dts: qcom: Use "pcie" as the node name instead of "pci"
2066a55949a7 arm64: dts: qcom: acer-aspire1: Add sound
90485d1f88ce arm64: dts: qcom: acer-aspire1: Correct audio codec definition
3d97796b14f9 arm64: dts: qcom: acer-aspire1: Enable RTC
5d870a6a209b arm64: dts: qcom: sm8450: switch UFS QMP PHY to new style of bindings
1e57f262d57c arm64: dts: qcom: sm8350: switch UFS QMP PHY to new style of bindings
731a9974488a arm64: dts: qcom: sm8250: switch UFS QMP PHY to new style of bindings
8a512baad9fa arm64: dts: qcom: sm8150: switch UFS QMP PHY to new style of bindings
9c4063711b1f arm64: dts: qcom: sm6350: switch UFS QMP PHY to new style of bindings
79c130d88048 arm64: dts: qcom: sm6115: switch UFS QMP PHY to new style of bindings
65d88afa8518 arm64: dts: qcom: sdm845: switch UFS QMP PHY to new style of bindings
fa34450ebcf9 arm64: dts: qcom: msm8998: switch UFS QMP PHY to new style of bindings
2d00768d0566 arm64: dts: qcom: msm8996: switch UFS QMP PHY to new style of bindings
6d501541ab8b arm64: dts: qcom: sm8450-hdk: Enable the A730 GPU
9999a06044c2 arm64: dts: qcom: sm8550-mtp: Enable the A740 GPU
1c8862cd1be0 arm64: dts: qcom: sm8550-qrd: Enable the A740 GPU
db2dd74a4321 arm64: dts: qcom: sm8550: Add GPU nodes
41411e46e180 arm64: dts: qcom: sm8450: Add GPU nodes
67082abed4d1 arm64: dts: qcom: msm8939: Make blsp_dma controlled-remotely
b0768548dacf arm64: dts: qcom: msm8916: Make blsp_dma controlled-remotely
e529c8cd00c4 arm64: dts: qcom: msm8939: Add clock-frequency for broadcast timer
dc95d696633b arm64: dts: qcom: Add missing vio-supply for AW2013
ce476167f046 arm64: dts: qcom: ipq6018: Add QUP5 SPI node
4723cf41be1a arm64: dts: qcom: ipq6018: Add remaining QUP UART node
af3ecf0ef5eb Merge branch '20231201-videocc-8150-v3-1-56bec3a5e443@quicinc.com' into clk-for-6.8
eeb32e2a4dbd dt-bindings: clock: Update the videocc resets for sm8150
c591d3616c87 arm64: dts: qcom: qrb4210-rb2: Enable MPSS and Wi-Fi
479632ff42dd arm64: dts: freescale: fix the schema check errors for fsl,tmu-calibration
4c12613ce6e0 ARM: dts: imx27-phytec-phycore-som: Use 'rtc' as node name
e55cb89e6ef8 ARM: dts: imx25: Remove unneeded keypad properties
610b835be6b9 dt-bindings: net: marvell,orion-mdio: Drop "reg" sizes schema
5605354f949e arm64: dts: freescale: imx8qxp: Disable dsp reserved memory by default
bb83d09752aa arm64: dts: imx8qxp: Add VPU subsystem file
11f5b7454c94 arm64: dts: imx8qxp-mek: Move port under USB connector
f6d6c203902d arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
643674137f59 dt-bindings: PCI: qcom: Document the SM8650 PCIe Controller
ddec040496f1 dt-bindings: PCI: dwc: rockchip: Document optional PCIe reference clock input
2d8a490fd767 dt-bindings: PCI: qcom: Correct reset-names property
2bdefbbe9381 dt-bindings: PCI: qcom: Correct clocks for SM8150
01ce80af6cc2 dt-bindings: PCI: qcom: Correct clocks for SC8180x
9c60f1faccc9 dt-bindings: PCI: qcom: Adjust iommu-map for different SoC
c78e4dd9c7c0 arm64: dts: rockchip: make use gpio-keys for buttons on puma-haikou
146cf4124863 arm64: dts: rockchip: expose BIOS Disable feedback pin on rk3399-puma
26575df71b2d arm64: dts: rockchip: fix misleading comment in rk3399-puma-haikou.dts
93c2098cfa35 ARM: dts: ux500-href: Switch HREF520 to AB8505
488dc522177c ARM: dts: ux500-href: Push AB8500 config out
7acade644174 ARM: dts: ux500-href: Push AB8500 inclusion to the top
0043c908a991 dt-bindings: connector: usb: add accessory mode description
7b7f80d863a5 arm64: dts: rockchip: Add vop on rk3588
ef9ea9ea51ca arm64: dts: ti: k3-j784s4-main: Add Itap Delay Value For DDR50 speed mode
a843a4a028e7 arm64: dts: ti: k3-j721s2-main: Add Itap Delay Value For DDR50 speed mode
83869275890f arm64: dts: ti: k3-j7200-main: Add Itap Delay Value For DDR52 speed mode
237d1d3aa847 arm64: dts: ti: k3-am6*: Add additional regs for DMA components
6540bf190683 arm64: dts: ti: k3-j7*: Add additional regs for DMA components
f584859d0f96 arm64: dts: ti: k3-am65: Add additional regs for DMA components
e76881a36a46 arm64: dts: cn913x: add device trees for COM Express boards
a57b87e79272 dt-bindings: arm64: add Marvell COM Express boards
22b670935a1f arm64: dts: armada-3720-turris-mox: set irq type for RTC
6b8494ce5492 ARM64: dts: Add special compatibles for the Turris Mox
8fcbbd77bc4f ARM64: dts: marvell: Fix some common switch mistakes
61b4fbe68e70 ARM: dts: marvell: make dts use gpio-fan matrix instead of array
1a025bb583e1 ARM: dts: marvell: Fix some common switch mistakes
283f9ebb847c dt-bindings: serial: Add a new compatible string for UMS9620
42414ddb491a dt-bindings: serial: imx: Properly describe the i.MX1 interrupts
a5b226724ae1 dt-bindings: usb: qcom,dwc3: Add X1E80100 binding
a94c79572ac2 dt-bindings: usb: Document WCD939x USB SubSystem Altmode/Analog Audio Switch
6c2112d5f3f3 arm64: dts: qcom: qrb5165-rb5: use u16 for DP altmode svid
79493bc9fc10 dt-bindings: connector: usb: add altmodes description
a98f9ad936ee dt-bindings: usb: nxp,ptn5110: Fix typos in the title
da44f4e15545 dt-bindings: usb: genesys,gl850g: Document 'peer-hub'
c32fd07e4010 dt-bindings: nvmem: add new stm32mp25 compatible for stm32-romem
cc8835249ffb ARM: dts: stm32: add dcmipp support to stm32mp135
dc483bc0495b dt-bindings: gnss: u-blox: add "reset-gpios" binding
82239f64506f dt-bindings: iommu: rockchip: Add Rockchip RK3588
b10f7d79bc86 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
e39b04bbed6e Merge branch 'icc-qcm2290' into icc-next
c95f389c0366 Merge branch 'icc-sm6115' into icc-next
b1f1b32e611b dt-bindings: PCI: rcar-pci-host: Add optional regulators
51eab76bc15c arm64: dts: allwinner: h618: add Transpeed 8K618-T TV box
8f65017d5eb4 dt-bindings: arm: sunxi: document Transpeed 8K618-T board name
a043657dff28 dt-bindings: vendor-prefixes: add Transpeed
b9b13eec182f arm64: dts: st: add bsec support to stm32mp25
4ba9da13226a ARM: dts: stm32: Consolidate usbh_[eo]hci phy properties on stm32mp15
3cd8f921b287 ARM: dts: stm32: don't mix SCMI and non-SCMI board compatibles
9d7cd7004fbc dt-bindings: arm: stm32: don't mix SCMI and non-SCMI board compatibles
3409584c8b1b ARM: dts: stm32: minor whitespace cleanup around '='
46d3a566ba35 regulator: dt-bindings: qcom,rpmh: add compatible for pm8010
b876feae34ef ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only
b0c246496fbc dt-bindings: display: msm: dp: declare compatible string for sm8150
363bcab6054e scsi: ufs: qcom: dt-bindings: Add SC7280 compatible string
3d1e051b5db8 arm64: dts: imx8mp-dhcom-pdk3: Describe the USB-C connector
ef545aff5ca3 arm64: dts: imx8mn-var-som-symphony: Describe the USB-C connector
13069c168986 arm64: dts: imx8mp-tqma8mpql-mba8mpxl: Fix USB connector description
c92840a54a7a arm64: dts: imx8mp-venice: Fix USB connector description
d0235ca7db0f arm64: dts: imx8mp-verdin: Fix USB connector description
8e6a721ca452 arm64: dts: imx8dxl-ss-conn: Move clk_dummy out of USB node
7662ace2b978 arm64: dts: imx8mn-evk: Move port under USB connector
92576b82f349 arm64: dts: imx8mm-evk: Move port under USB connector
91c629656840 arm64: dts: freescale: introduce dimonoff-gateway-evk board
8b75c148251b dt-bindings: arm: fsl: add Dimonoff gateway EVK board
192ca710eafd dt-bindings: vendor-prefixes: add dimonoff
edc62a2939e3 arm64: dts: imx8m*-tqma8m*: Add chassis-type
d35e9fd630d7 arm64: dts: imx8mn-beacon: Support overdrive mode
a684f6ef9a40 arm64: dts: imx8mn: Enable Overdrive mode
0c6ce8fb001d arm64: dts: imx8mm-beacon: Enable overdrive mode
42e3d3eaa3cb arm64: dts: imx8mm: Add optional overdrive DTSI
f9b749293626 arm64: dts: imx8mm: Reduce GPU to nominal speed
aadc35d489bd arm64: dts: imx93: Fix the micfil clock-names entries
f8b732c140f6 ARM: dts: imx23/28: Fix the DMA controller node name
9697ec153a9c ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
62875ee7373e ARM: dts: imx27-apf27dev: Fix LED name
6bd0d6d0fb3d ARM: dts: imx25/27: Pass timing0
3cd4341f361d ARM: dts: imx25: Fix the iim compatible string
52eef6a12e21 arm64: dts: exynos: google: Add initial Oriole/pixel 6 board support
b0f009ddef83 arm64: dts: exynos: google: Add initial Google gs101 SoC support
7932b36aab04 dt-bindings: arm: google: Add bindings for Google ARM platforms
c439b1ecd46b dt-bindings: PCI: ti,j721e-pci-*: Add j784s4-pci-* compatible strings
5114ddf2754e dt-bindings: PCI: ti,j721e-pci-*: Add checks for num-lanes
5142777cc846 arm64: dts: renesas: white-hawk-cpu: Fix missing serial console pin control
9c5b72f0dbf7 arm64: dts: renesas: rzg3s-smarc-som: Enable the Ethernet interfaces
c20cd1060c83 arm64: dts: renesas: rzg3s-smarc-som: Use switches' names to select on-board functionalities
d1702886b9b1 arm64: dts: renesas: r9a08g045: Add Ethernet nodes
c8bc29914258 arm64: dts: renesas: r9a08g045: Add IA55 interrupt controller node
2ac19b878bcd arm64: zynqmp: Add missing destination mailbox compatible
bfda609d3986 arm64: zynqmp: Fix clock node name in kv260 cards
bf79a715a44c arm64: zynqmp: Move fixed clock to / for kv260
067130bf35dd dt-bindings: soc: Add new board description for MicroBlaze V
3909199b5365 dt-bindings: soc: xilinx: Move xilinx.yaml from arm to soc
5a30f0c409d5 arm64: xilinx: Remove address/size-cells from gem nodes
c7afa96873c9 arm64: xilinx: Remove address/size-cells from flash node
e3a99f7f8d11 arm64: xilinx: Put ethernet phys to mdio node
6f4a9a0c8df9 arm64: xilinx: Remove mt25qu512a compatible string from SOM
e3823e6a85e8 arm64: xilinx: Use lower case for partition address
ee878ab978b7 arm64: xilinx: Do not use '_' in DT node names
edb56e5ac871 riscv: dts: starfive: Enable SDIO wifi on JH7100 boards
738fd2fd6271 riscv: dts: starfive: Enable SD-card on JH7100 boards
4a3456d5f756 riscv: dts: starfive: Add JH7100 MMC nodes
0b98a998f256 riscv: dts: starfive: Add pool for coherent DMA memory on JH7100 boards
b7e59570a83e riscv: dts: starfive: Add JH7100 cache controller
0e3644417255 riscv: dts: starfive: Mark the JH7100 as having non-coherent DMAs
2ce3980ca0ba riscv: dts: starfive: Group tuples in interrupt properties
21bb4608c1f4 arm64: dts: ti: k3-am62-main: Add GPU device node
21dbc3bb6085 dt-bindings: interconnect: qcom,msm8998-bwmon: Add QCM2290 bwmon instance
0a5288800340 dt-bindings: rockchip,vop2: Add more endpoint definition
689213783aed dt-bindings: display: vop2: Add rk3588 support
d06f02a431a5 dt-bindings: interconnect: qcom,msm8998-bwmon: Add SM6115 bwmon instance
a67732e07f79 arm64: dts: fsd: Add MFC related DT enteries
a8f325704092 arm64: dts: ti: k3-j721s2-evm: Add overlay for PCIE1 Endpoint Mode
c33d48e723e9 arm64: dts: ti: k3-j721e-evm: Add overlay for PCIE0 Endpoint Mode
411f344456e4 arm64: dts: ti: k3-j721e-sk: Add TPS6594 family PMICs
e88109a7ea70 arm64: dts: ti: k3-am69-sk: Add support for TPS6594 PMIC
8203df16463f arm64: dts: ti: k3-j784s4-evm: Add support for TPS6594 PMIC
12693cd3a151 arm64: dts: ti: k3-j721e-som-p0: Add TP6594 family PMICs
022683d6bab2 arm64: dts: ti: k3-j721s2-som-p0: Add TP6594 family PMICs
b13637076b0a arm64: dts: ti: k3-j7200-som-p0: Add TP6594 family PMICs
073920a8e469 spi: dw: Remove Intel Thunder Bay SOC support
853b38b4ccbe dt-bindings: media: s5p-mfc: Add mfcv12 variant
af1444135df0 dt-bindings: soc: rockchip: add rk3588 vop/vo syscon
ea9d3ade1f63 media: dt-bindings: Add OmniVision OV64A40
eac07152e0b8 media: dt-bindings: media: imx335: Add supply bindings
37535c00a2ec media: dt-bindings: gc0308: add binding
9be8a81b5d55 media: dt-bindings: ov8856: decouple lanes and link frequency from driver
e78a33d58798 media: dt-bindings: alvium: add document YAML binding
123e53dddda5 dt-bindings: vendor-prefixes: Add prefix alliedvision
5367c47d39ee media: dt-bindings: ak7375: Add ak7345 support
33368f1c353f dt-bindings: mfd: pm8008: Clean up example node names
2ab5a6b315e7 dt-bindings: leds: qcom,spmi-flash-led: Fix example node name
fa6a05463677 dt-bindings: leds: aw200xx: Fix led pattern and add reg constraints
44e89edff478 dt-bindings: leds: awinic,aw200xx: Add AW20108 device
6cd025d35790 dt-bindings: leds: aw200xx: Remove property "awinic,display-rows"
65b3a1cec5b9 dt-bindings: leds: aw200xx: Introduce optional enable-gpios property
48e46bb513fb dt-bindings: leds: Add Allwinner A100 LED controller
193b43eae00d dt-bindings: leds: Fix JSON pointer in max-brightness
ac28e493721a ARM: dts: imx25: Move usbphy nodes out of simple-bus
90f8840e451d ARM: dts: imx1: Use 'bus' for AIPI bus
dfc79426f635 ARM: dts: imx27-phytec-phycore-rdk: Move usbphy nodes out of simple-bus
92c19f27621f ARM: dts: imx27-pdk: Move usbphy0 out of simple-bus
09cddc0d2c3d ARM: dts: imx27: Use 'bus' for EMI bus
e7cd1893e9ea ARM: dts: imx27: Use 'bus' for AIPI bus
81e952ba68c6 media: dt-bindings: media: i2c: Add bindings for TW9900
2ed7758d7c0a dt-bindings: vendor-prefixes: Add techwell vendor prefix
9b5febaeea2a arm64: dts: freescale: add fsl-lx2160a-mblx2160a board
c763b70a3ecc dt-bindings: arm: fsl: Add TQ-Systems LX2160A based boards
6c6fc780325f ARM: dts: imx27-phytec-phycore-som: Use the mux- prefix
2571ab1025eb ARM: dts: imx1: Fix sram node
c64c46277345 ARM: dts: imx27: Fix sram node
4606862f29a7 ARM: dts: imx: Use flash@0,0 pattern
e9c196aff7af ARM: dts: imx25/27-eukrea: Fix RTC node name
34087a021485 ARM: dts: imx25-pdk: Pass #sound-dai-cells
f91e9208f059 ARM: dts: imx25: Pass I2C clock-names property
cb93e178f443 arm64: dts: freescale: imx93: add i3c1 and i3c2
3b2d451cf59f arm64: dts: ls1012a: Remove big-endian from thermal
25e47251c772 dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings
a0fb1bc7fd22 Merge tag 'exynos-drm-next-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
aae3e1a63026 dt-bindings: riscv: add Zfa ISA extension description
ab9eea090f24 dt-bindings: riscv: add Zvfh[min] ISA extension description
7a64028da27c dt-bindings: riscv: add Zihintntl ISA extension description
f4789213e5b6 dt-bindings: riscv: add Zfh[min] ISA extensions description
c5de05064f79 dt-bindings: riscv: add vector crypto ISA extensions description
215c236fe6da dt-bindings: riscv: add scalar crypto ISA extensions description
1a96ef0c118a Merge tag 'pef2256-framer' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
6dbce6382acc Merge tag 'pef2256-framer' into devel
1c566bdd0e0f dt-bindings: net: Add the Lantiq PEF2256 E1/T1/J1 framer
0e2e3f19a42d arm64: dts: rockchip: Add Anbernic RG351V
aa1c981f085f arm64: dts: rockchip: Split RG351M from Odroid Go Advance
5985d0436d7f dt-bindings: arm: rockchip: Add Anbernic RG351V
dddd8bf614e2 arm64: dts: rockchip: Add ethernet0 alias to the dts for RK3588(S) boards
e79626358af1 arm64: dts: rockchip: Add ethernet0 alias to the dts for RK3566 boards
c2bbb4cb37ce arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for PX30
5df2cd229ef2 arm64: dts: rockchip: Remove ethernetX aliases from the SoC dtsi for RK3328
773747ea9224 arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for RK3368
c47780f2190d arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for RK3399
0e5a28940713 arm64: dts: rockchip: make dts use gpio-fan matrix instead of array
51d3d03836a0 arm64: dts: rockchip: add gpio alias for gpio dt nodes
5fcf2d67aa35 arm64: dts: rockchip: Add dynamic-power-coefficient to rk3399 GPU
80e922961b8e arm64: dts: rockchip: add rk3588 spi aliases to soc dtsi
8f3fbd13ee16 arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
15b3dffcbe21 arm64: dts: rockchip: add rk3588 i2c aliases to soc dtsi
095c6f3ed2af arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi
5dc789289ead arm64: dts: rockchip: add Theobroma Jaguar SBC
bc75d639d8bd dt-bindings: arm: rockchip: Add Theobroma-Systems Jaguar SBC
3c240c87c027 arm64: dts: rockchip: Add Powkiddy X55
2496d275584a dt-bindings: arm: rockchip: Add Powkiddy X55
517f4adf026d arm64: dts: rockchip: add USB3 host to rock-5a
d474a82f6b8f arm64: dts: rockchip: add USB3 host to rock-5b
4bf4fdf576e0 arm64: dts: rockchip: add missing tx/rx-fifo-depth for rk3328 gmac
56e0ff652ec1 arm64: dts: rockchip: add gpio-line-names to rk3308-rock-pi-s
36bdcd2e79dd ARM: dts: rockchip: add hdmi-connector node to rk3036-kylin
bd117185d559 ARM: dts: rockchip: fix rk3036 hdmi ports node
2127f8eafedb dt-bindings: clock: google,gs101: fix incorrect numbering and DGB suffix
fff73dbf51fc dt-bindings: soc: samsung: usi: add google,gs101-usi compatible
37ffa8542576 dt-bindings: serial: samsung: Make samsung,uart-fifosize a required property
fd8ed4626aeb dt-bindings: serial: samsung: Add google-gs101-uart compatible
33bfe5e1dc68 dt-bindings: watchdog: Document Google gs101 watchdog bindings
e6381c01b68b riscv: dts: thead: Enable LicheePi 4A eMMC and microSD
3bd0505c030a riscv: dts: thead: Enable BeagleV Ahead eMMC and microSD
a53de85228bf riscv: dts: thead: Add TH1520 mmc controllers and sdhci clock
fd1214b13ed4 ARM: dts: microchip: sama5d27_som1_ek: Remove mmc-ddr-3_3v property from sdmmc0 node
5d2956b92dea dt-bindings: interrupt-controller: mpm: Pass MSG RAM slice through phandle
402b4259739c dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/G3S
150ddb24b2f0 Merge tag 'coresight-next-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next
64011b700499 dt-bindings: arm-smmu: Document SM8[45]50 GPU SMMU
a5ab14d25e79 dt-bindings: arm-smmu: Add compatible for X1E80100 SoC
aaa9819e17c5 dt-bindings: iommu: arm,smmu: document the SM8650 System MMU
c04ccbbeb58a dt-bindings: iommu: arm,smmu: document clocks for the SM8350 GPU SMMU
b73f681e020f arm64: dts: juno: Align thermal zone names with bindings
8762e182cc34 dt-bindings: hwmon: Add lltc ltc4286 driver bindings
7711cd743748 Merge tag 'exynos-drm-next-for-v6.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into exynos-drm-next
0c9c816dddb4 Backmerge tag 'v6.7-rc5' into drm-next
cc330eac5dd3 dt-bindings: iio: humidity: Add TI HDC302x support
07a88600291a dt-bindings: iio: light: add ltr390
a803f8c65ec8 dt-bindings: iio: pressure: add honeywell,hsc030
49600f0eeb26 dt-bindings: iio: temperature: add MLX90635 device
5f69a9e8d3dd dt-bindings: hwmon: Increase max number of io-channels
565f404ae838 dt-bindings: hwmon: Add mps mp5990 driver bindings
ad5cba1ee29a ASoC: dt-bindings: qcom,lpass-wsa-macro: Add SM8650 LPASS WSA
880126e66fb3 ASoC: dt-bindings: qcom,lpass-va-macro: Add SM8650 LPASS VA
19ed8a218bd9 ASoC: dt-bindings: qcom,lpass-tx-macro: Add SM8650 LPASS TX
322423704418 ASoC: dt-bindings: qcom,lpass-rx-macro: Add SM8650 LPASS RX
f09397ff6cbf dt-bindings: dma: Add dma-channel-mask to nvidia,tegra210-adma
6263d2ffbb0f dt-bindings: dma: sf-pdma: add new compatible name
7581e8bd108d arm64: dts: mediatek: mt8192: Add Smart Voltage Scaling node
de53c9a33f27 arm64: dts: mediatek: mt8195: Add SVS node and reduce LVTS_AP iospace
53ceb33cc2de arm64: dts: mediatek: mt8183: Change iospaces for thermal and svs
d305525393a4 arm64: dts: mediatek: mt8186: fix address warning for ADSP mailboxes
d4dbd2b56a9f arm64: dts: mediatek: mt8186: Fix alias prefix for ovl_2l0
209e23166717 arm64: dts: mt6358: Drop bogus "regulator-fixed" compatible properties
b5aaf3dc3cc4 arm64: dts: mt8183: kukui-jacuzzi: Drop bogus anx7625 panel_flag property
aef30bad7a04 arm64: dts: Add MediaTek MT8188 dts and evaluation board and Makefile
c8d764a0bbc6 dt-bindings: soc: mediatek: pwrap: Modify compatible for MT8188
1b35e3cf8066 dt-bindings: arm: mediatek: Add mt8188 pericfg compatible
7e4914880550 dt-bindings: arm: Add compatible for MediaTek MT8188
c4c85ca7297e arm64: dts: mediatek: mt8195: add DSI and MIPI DPHY nodes
e7300ae6b913 dt-bindings: display: mediatek: dsi: add compatible for MediaTek MT8195
cebba0dd1a01 arm64: dts: mediatek: mt6358: Merge ldo_vcn33_* regulators
8ac8be12ac45 dt-bindings: arm: mediatek: convert audsys and mt2701-afe-pcm to yaml
275042f3fe7b arm64: dts: mediatek: mt8195: add MDP3 nodes
aba1f17e7acc arm64: dts: mediatek: mt8195: revise VDOSYS RDMA node name
7032d5f144c2 arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes
22bae315e031 dt-bindings: display: mediatek: padding: add compatible for MT8195
751c1a1076cb dt-bindings: display: mediatek: split: add compatible for MT8195
e2f195c9941b dt-bindings: display: mediatek: ovl: add compatible for MT8195
98aa994aefee dt-bindings: display: mediatek: merge: add compatible for MT8195
6f5d6cbaa3f9 dt-bindings: display: mediatek: color: add compatible for MT8195
ef86984ae659 dt-bindings: display: mediatek: aal: add compatible for MT8195
8f6efe19695a dt-bindings: media: mediatek: mdp3: add component TDSHP for MT8195
f3a2d9b01651 dt-bindings: media: mediatek: mdp3: add component TCC for MT8195
9952a02bb5ee dt-bindings: media: mediatek: mdp3: add component STITCH for MT8195
6c49acbc4134 dt-bindings: media: mediatek: mdp3: add component HDR for MT8195
d6fdbfb3b4ad dt-bindings: media: mediatek: mdp3: add component FG for MT8195
a7d6e829425b dt-bindings: media: mediatek: mdp3: add compatible for MT8195 WROT
7db0370c2d66 dt-bindings: media: mediatek: mdp3: add compatible for MT8195 RSZ
5620ceb8b6ca dt-bindings: media: mediatek: mdp3: add config for MT8195 RDMA
8f056e0ef45c dt-bindings: media: mediatek: mdp3: merge the indentical RDMA under display
c2d8940ef6fd dt-bindings: media: mediatek: mdp3: correct RDMA and WROT node with generic names
4347ab16a815 media: dt-bindings: mediatek: Add phandle to mediatek,scp on MDP3 RDMA
e14664bd10f6 arm64: dts: mediatek: mt8195-cherry: Assign sram supply to MFG1 pd
0561502a0693 arm64: dts: mediatek: mt8195-cherry: Add MFG0 domain supply
08b52bb4b076 dt-bindings: reset: mt8188: Add VDOSYS reset control bits
10fbcb9df4e2 dt-bindings: arm: mediatek: Add compatible for MT8188
88c996595db3 dt-bindings: display: mediatek: padding: Add MT8188
ca5643fef42b dt-bindings: display: mediatek: merge: Add compatible for MT8188
ae3b78a94c61 dt-bindings: display: mediatek: mdp-rdma: Add compatible for MT8188
744464b66c7e dt-bindings: display: mediatek: ethdr: Add compatible for MT8188
01b1569a2d88 dt-bindings: thermal: convert Mediatek Thermal to the json-schema
90d08ec14e3c arm64: dts: mt8183: Add jacuzzi pico/pico6 board
5df3f176b5bf dt-bindings: arm64: mediatek: Add mt8183-kukui-jacuzzi-pico
281ab3bf124c arm64: dts: mt8183: Add jacuzzi makomo board
52cfc0fd5dd9 dt-bindings: arm64: mediatek: Add mt8183-kukui-jacuzzi-makomo
19dd875d8e0a arm64: dts: mt8183: Add kukui katsu board
b8dd2f8c3e1c dt-bindings: arm64: mediatek: Add mt8183-kukui-katsu
9a6a916f0bc6 arm64: dts: mediatek: Move MT6358 PMIC interrupts to MT8183 boards
3f27ea46dc3d arm64: dts: mediatek: Use interrupts-extended where possible
ad0c69fd2fa3 arm64: dts: mediatek: mt8173: Use interrupts-extended where possible
c82e8139aeaa arm64: dts: mediatek: mt8183: Use interrupts-extended where possible
d8a485fe96f7 dt-bindings: soc: mediatek: add mt8186 and mt8195 svs dt-bindings
e66d619c0c3a dt-bindings: arm: mediatek: mmsys: Add VPPSYS compatible for MT8188
5e6b938fc74f arm64: dts: mediatek: mt8192: Add thermal nodes and thermal zones
e90ef555e054 arm64: dts: mediatek: mt8183: Add decoder
0f0ccec6cc8d arm64: dts: mediatek: mt8173: Drop VDEC_SYS reg from decoder
b6aed11d9548 arm64: dts: mediatek: cherry: Add platform thermal configuration
86760b83d52b dt-bindings: display: simple: Add AUO G156HAN04.0 LVDS display
a9ddc30ef584 dt-bindings: display: panel: Add Ilitek ili9805 panel controller
defac25462fb dt-bindings: display: st7701: Add Anbernic RG-ARC panel
336bc0e68db2 dt-bindings: display: panel: add Fascontek FS035VG158 panel
955ce81826fb dt-bindings: vendor-prefixes: Add fascontek
752a79b7aaef dt-bindings: display: panel: Clean up leadtek,ltk035c5444t properties
770aea203c16 Merge 6.7-rc5 into tty-next
34ef5edc5b88 Merge 6.7-rc5 into usb-next
621073890e71 Merge branch 'for-v6.8/samsung-bindings-compatibles' into next/dt64
bf94b2d5359e arm64: dts: exynos: add minimal support for exynosautov920 sadk board
e9fd8cf1d2d8 arm64: dts: exynos: add initial support for exynosautov920 SoC
d0863d30608a dt-bindings: pinctrl: samsung: correct ExynosAutov920 wake-up compatibles
9bdf0db8ae4b dt-bindings: samsung: exynos-sysreg: combine exynosautov920 with other enum
5b54324e6d5b dt-bindings: dma: Drop undocumented examples
e2fd1a08fd82 Merge remote-tracking branch 'drm-misc/drm-misc-next' into msm-next
a04c2351b389 dt-bindings: soc: google: exynos-sysreg: add dedicated SYSREG compatibles to GS101
9b3c118b3d19 dt-bindings: clock: Add Google gs101 clock management unit bindings
d97b5e938286 dt-bindings: soc: samsung: exynos-pmu: Add gs101 compatible
6a5a439c0701 dt-bindings: pinctrl: samsung: add gs101-wakeup-eint compatible
10422d721886 dt-bindings: pinctrl: samsung: add google,gs101-pinctrl compatible
3a5cb767f670 media: dt-bindings: media: rkisp1: Fix the port description for the parallel interface
1da803cb7af8 arm64: dts: qcom: qcm6490-fairphone-fp5: Enable WiFi
8da528961e4e arm64: dts: qcom: qcm6490-fairphone-fp5: Enable various remoteprocs
e6fa65e6d152 arm64: dts: qcom: sc7280: Add CDSP node
fc9753f721c5 arm64: dts: qcom: sc7280: Add ADSP node
c8ee1d58df76 arm64: dts: qcom: sc7280: Use WPSS PAS instead of PIL
52f7c413fda4 arm64: dts: qcom: qcm6490-fairphone-fp5: Enable UFS
4df3a7b5d504 arm64: dts: qcom: msm8953: Set initial address for memory
423afe7e3dcb ARM: dts: qcom: msm8226: Add GPU
bba409f9c339 ARM: dts: qcom: Disable pm8941 & pm8226 smbb charger by default
7e9db953a623 arm64: dts: qcom: sc7280: Add UFS nodes for sc7280 IDP board
4e3613f89c7f arm64: dts: qcom: sc7280: Add UFS nodes for sc7280 soc
d8bfc2581200 dt-bindings: input: gpio-mouse: Convert to json-schema
2691fb7a0b13 dt-bindings: drm: rockchip: convert inno_hdmi-rockchip.txt to yaml
2dc455b73efa ARM: dts: samsung: exynos4210-i9100: Add accelerometer node
0fab2792a476 ARM: dts: samsung: exynos4210-i9100: Add node for touch keys
7ea4a30a8fd6 ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
4cee9945012b ARM: dts: microchip: sama5d27_wlsom1_ek: Remove mmc-ddr-3_3v property from sdmmc0 node
e76f84dfaedb arm64: dts: qcom: sm8650: Add DisplayPort device nodes
2cfe9148e611 arm64: dts: qcom: pm8550: drop PWM address/size cells
49e3d2a63a49 dt-bindings: display: mediatek: padding: Add MT8188
8c1a5538e89b dt-bindings: display: mediatek: merge: Add compatible for MT8188
29025812d6c3 dt-bindings: cache: qcom,llcc: correct QDU1000 reg entries
3e60d5b58b7d dt-bindings: gpu: samsung-scaler: constrain iommus and power-domains
1d6aee346b02 dt-bindings: gpu: samsung-g2d: constrain iommus and power-domains
d4a84a84e922 dt-bindings: gpu: samsung: constrain clocks in top-level properties
1e0b14dc8237 dt-bindings: gpu: samsung: re-order entries to match coding convention
ba50ff463c59 dt-bindings: gpu: samsung-rotator: drop redundant quotes
1a3c1bf5b141 dt-bindings: display: mediatek: mdp-rdma: Add compatible for MT8188
0a16c7e2c414 dt-bindings: display: mediatek: ethdr: Add compatible for MT8188
925f69a6cc7d dt-bindings: serial: qcom,msm-uartdm: Vote for shared resources
44f4478aa927 dt-bindings: serial: snps-dw-apb-uart: include rs485 schema
fad4b52a0fdb arm64: dts: hisilicon: hikey970-pmic: clean up SPMI node
051c12eb5d46 arm64: dts: hisilicon: hikey970-pmic: fix regulator cells properties
e567127bd619 dt-bindings: hisilicon: Merge hi3620-clock into hisilicon,sysctrl binding
4b823f7042ef arm64: dts: qcom: x1e80100: Add Compute Reference Device
f51679f0f817 arm64: dts: qcom: Add base X1E80100 dtsi and the QCP dts
ca121fc146b2 dt-bindings: arm: qcom: Document X1E80100 SoC and boards
c53c3b8c12a4 dt-bindings: arm: cpus: Add qcom,oryon compatible
aa432318faa9 Merge branch 'icc-x1e80100' of https://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into arm64-for-6.8
9eba2f2fb214 Merge branch '20231205061002.30759-4-quic_sibis@quicinc.com' into arm64-for-6.8
f213e67c84b7 Merge branch '20231205061002.30759-4-quic_sibis@quicinc.com' into clk-for-6.8
ecc521e21905 dt-bindings: clock: qcom-rpmhcc: Add RPMHCC bindings for X1E80100
079af735ef3c dt-bindings: clock: qcom: Add X1E80100 GCC clocks
8f4495322f78 arm64: dts: qcom: sm8650-mtp: add WSA8845 speakers
02b73ff63440 arm64: dts: qcom: sm8650: add Soundwire controllers
e6679602ac09 arm64: dts: qcom: sm8650: add ADSP audio codec macros
5c0a5d9640c3 arm64: dts: qcom: sm8650: add LPASS LPI pin controller
7f6211cc8e63 arm64: dts: qcom: sm8650: add ADSP GPR
b72a9e98977b arm64: dts: qcom: sm8650-qrd: enable IPA
13bdc41575ab arm64: dts: qcom: sm8650: add IPA information
0fd767d395a1 arm64: dts: qcom: sm8650-qrd: add interconnect dependent device nodes
d68c8f7f237a arm64: dts: qcom: sm8650-mtp: add interconnect dependent device nodes
900a28b939d2 arm64: dts: qcom: sm8650: add interconnect dependent device nodes
ff01973261d0 arm64: dts: qcom: sm8650: add initial SM8650 QRD dts
185ce15a620b arm64: dts: qcom: sm8650: add initial SM8650 MTP dts
487b5dde17e2 arm64: dts: qcom: pm8550ve: make PMK8550VE SID configurable
61ff00c8e1de arm64: dts: qcom: add initial SM8650 dtsi
7266e49a2f3e dt-bindings: arm: qcom: document SM8650 and the reference boards
34a104c65fa9 Merge branch 'icc-sm8650' of https://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into arm64-for-6.8
dc9c79dc36cc Merge branch '20231106-topic-sm8650-upstream-clocks-v3-5-761a6fadb4c0@linaro.org' into arm64-for-6.8
482bf7559678 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
89cdcbe73e3a dt-bindings: display: msm: dp-controller: document SM8650 compatible
6457d6362b66 docs: dt-bindings: add DTS Coding Style document
17bd76b0dcba ARM: dts: rockchip: add gpio alias for gpio dt nodes
1e3bf6cdb555 dt-bindings: mfd: hisilicon,hi6421-spmi-pmic: Clean up example
ebf62e0e08ff dt-bindings: mfd: hisilicon,hi6421-spmi-pmic: Fix regulator binding
ff778a37f71a dt-bindings: mfd: hisilicon,hi6421-spmi-pmic: Fix up binding reference
60bfc8c9aef9 dt-bindings: firmware: qcom,scm: Allow interconnect for everyone
ae3daad140cd arm64: dts: qcom: sm8250-xiaomi-pipa: Add initial device tree
3ab4a6461f9d dt-bindings: arm: qcom: Add Xiaomi Pad 6 (xiaomi-pipa)
a4229e4b1bf7 arm64: dts: qcom: sm8550-qrd: enable IPA
0b02bd1a7f8b arm64: dts: qcom: sm8550: add IPA information
1d704f347212 dt-bindings: firmware: qcom,scm: document SCM on X1E80100 SoCs
a07e2c07074c dt-bindings: arm: qcom-soc: extend pattern matching for X1E80100 SoC
190053cb1ce8 arm64: dts: qcom: minor whitespace cleanup around '='
e5d9eb69d255 ARM: dts: qcom: minor whitespace cleanup around '='
a12829c0d5ea arm64: dts: qcom: ipq8074: Add QUP4 SPI node
81c5f29af493 arm64: dts: qcom: qdu1000: Add ECPRI clock controller
7f8d2a160503 Merge branch '20231123064735.2979802-2-quic_imrashai@quicinc.com' into clk-for-6.8
a7b1e49f140b dt-bindings: clock: qcom: Add ECPRICC clocks for QDU1000 and QRU1000
0d8365b85a68 ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
4e5dc5d2a1e5 arm64: dts: qcom: sm8550: fix USB wakeup interrupt types
b0dd9226dd63 arm64: dts: qcom: sm8150: fix USB wakeup interrupt types
301d240b276b arm64: dts: qcom: sm6375: fix USB wakeup interrupt types
bcfa8e3ed274 arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
20a6fe5d28b2 arm64: dts: qcom: sdm670: fix USB wakeup interrupt types
d2c7cfd6cfc3 arm64: dts: qcom: sc8180x: fix USB wakeup interrupt types
6f29d799b7cf arm64: dts: qcom: sc7280: fix usb_2 wakeup interrupt types
ca84d4480b44 arm64: dts: qcom: sc7280: fix usb_1 wakeup interrupt types
096085135fda arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
6c1f003cc9a1 arm64: dts: qcom: sa8775p: fix USB wakeup interrupt types
45bd09d633c8 arm64: dts: qcom: msm8916-longcheer-l8150: Add battery and charger
195857e6f299 arm64: dts: qcom: pm8916: Add BMS and charger
6caacf1f1bd3 arm64: dts: qcom: sc7280: Add 0xac Adreno speed bin
3ddcb3a31e24 arm64: dts: qcom: sc7280: Mark Adreno SMMU as DMA coherent
b8bf84b9efc0 arm64: dts: qcom: sc7280: Fix up GPU SIDs
0830942e59a4 arm64: dts: qcom: sc7280: Add ZAP shader support
6a2b85d201c9 dt-bindings: arm: qcom-soc: extend pattern for matching existing SoCs
ddd782c9e1e9 dt-bindings: cache: qcom,llcc: Add X1E80100 compatible
573141bcc2f7 arm64: dts: qcom: sdx75-idp: Enable USB3 and PHY support
93789523f679 arm64: dts: qcom: Add USB3 and PHY support on SDX75
ddc8552a97e0 arm64: dts: qcom: Add interconnect nodes for SDX75
2f6480d75792 arm64: dts: qcom: sm8350: Fix remoteproc interrupt type
22ab1e4b96e5 arm64: dts: qcom: pm8350k: Remove hanging whitespace
648dd7cb906d arm64: dts: qcom: sm8350: Fix DMA0 address
aa5e755d7246 dt-bindings: iio: adc: qcom: Add Qualcomm smb139x
aee24a669374 arm64: dts: qcom: sc8180x: align APSS with bindings
c51b52a3c7aa arm64: dts: qcom: sm6375-pdx225: add fixed touchscreen AVDD regulator
714c2d01cb79 arm64: dts: qcom: sm6125: add interrupts to DWC3 USB controller
869ed2bf0b06 arm64: dts: qcom: sm6115: align mem timer size cells with bindings
5b01a3bc4e38 arm64: dts: qcom: sm8150: use 'gpios' suffix for PCI GPIOs
abcbd3630645 arm64: dts: qcom: sc8180x-primus: use 'gpios' suffix for PCI GPIOs
5281b1e2c756 arm64: dts: qcom: sc8180x-flex-5g: use 'gpios' suffix for PCI GPIOs
dbf927ecfde3 arm64: dts: qcom: sdm845: correct Soundwire node name
27d49e38f5d4 arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
85591f38ba27 arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
65b61add6d70 arm64: dts: qcom: sm8250: Add wakeup-source to usb_1 and usb_2
343c9084fd53 arm64: dts: qcom: sdm850-lenovo-yoga: Add wakeup-sources
eb9d72ac20a4 arm64: dts: qcom: sa8775p-ride: enable pmm8654au_0_pon_resin
e4828a6315b4 arm64: dts: qcom: sm8350: move DPU opp-table to its node
cfa2fb4b7f5b arm64: dts: qcom: sc8280xp-x13s: drop sound-dai-cells from eDisplayPort
927e9926b48f arm64: dts: qcom: sc8180x-primus: drop sound-dai-cells from eDisplayPort
ca8a02834a8f arm64: dts: qcom: sm8250: correct Soundwire node name
682a341c0cdc arm64: dts: qcom: sc8280xp: correct Soundwire node name
13f2dbc0a9cb arm64: dts: qcom: qdu1000-idp: drop unused LLCC multi-ch-bit-off
6cda67d14000 arm64: dts: qcom: qdu1000: correct LLCC reg entries
208a56e344a2 arm64: dts: qcom: sm8450: fix soundwire controllers node name
c7bee631d3e9 arm64: dts: qcom: sm8550: fix soundwire controllers node name
255ca7c95406 Merge branch '20231106-topic-sm8650-upstream-clocks-v3-5-761a6fadb4c0@linaro.org' into clk-for-6.8
52721c372031 dt-bindings: clock: qcom: Document the SM8650 RPMH Clock Controller
a8430c36d8bc dt-bindings: clock: qcom: document the SM8650 GPU Clock Controller
e39f08bf115a dt-bindings: clock: qcom: document the SM8650 Display Clock Controller
076aa9fc05f3 dt-bindings: clock: qcom: document the SM8650 General Clock Controller
abeff2c9f476 dt-bindings: clock: qcom: document the SM8650 TCSR Clock Controller
3714369ceebb dt-bindings: cache: qcom,llcc: Document the SM8650 Last Level Cache Controller
cb0f1e272d52 dt-bindings: clock: qcom,gcc-msm8939: Add CSI2 related clocks
7ee4127b7a3f arm64: dts: qcom: sc8280xp: Add in CAMCC for sc8280xp
d380ef670205 Merge branch '20231026105345.3376-3-bryan.odonoghue@linaro.org' into arm64-for-6.8
30a292de3f9a Merge branch '20231026105345.3376-3-bryan.odonoghue@linaro.org' into clk-for-6.8
f007e023cbd5 dt-bindings: clock: Add SC8280XP CAMCC
aec8967c6dce dt-bindings: clock: Use gcc.yaml for common clock properties
7c1eb93bd0d3 dt-bindings: clock: qcom,gcc-ipq6018: split to separate schema
b6364ec8f82d dt-bindings: arm: qcom,ids: Add SoC ID for SM8650
3f482ad7991e arm64: dts: qcom: sm8550: Enable download mode register write
fe077e894545 arm64: dts: qcom: sm8350: Add TCSR halt register space
956699ec82d4 arm64: dts: qcom: sm8250: Add TCSR halt register space
e0bd046de230 arm64: dts: qcom: ipq5018: add few more reserved memory regions
c38c43d3b995 arm64: dts: qcom: ipq5332: add missing properties to the GPIO LED node
0390c1ee5e11 arm64: dts: qcom: ipq9574: enable GPIO based LED
2f9b91c0cf6d arm64: dts: qcom: qrb2210-rb1: use USB host mode
2196010939c0 dt-bindings: firmware: qcom,scm: document SM8650 SCM Firmware Interface
ae8a176c474a dt-bindings: soc: qcom: pmic-glink: document SM8650 compatible
c3cb68af1e5d dt-bindings: soc: qcom,aoss-qmp: document the SM8560 Always-On Subsystem side channel
a6ea4114f911 dt-bindings: mmc: mtk-sd: add tuning steps related property
30e4bc60ac6d dt-bindings: mfd: ti,am3359-tscadc: Allow dmas property to be optional
5c51588d48df dt-bindings: mfd: qcom,spmi-pmic: Add pm8916 vm-bms and lbc
a03962f53dbd dt-bindings: mfd: qcom-spmi-pmic: Document PM8937 PMIC
81a2c830f173 dt-bindings: mfd: qcom,tcsr: Add compatible for sm8250/sm8350
fe50e0fb05fc dt-bindings: mfd: ams,as3711: Convert to json-schema
197c27b6cfaa arm64: dts: fsd: add specific compatibles for Tesla FSD
395fa67b6b72 Merge branch 'for-v6.8/samsung-bindings-compatibles' into next/dt64
5927c83d20c8 dt-bindings: watchdog: samsung: add specific compatible for Tesla FSD
78e4ed4670d7 dt-bindings: samsung: exynos-pmu: add specific compatible for Tesla FSD
c168df69f5a1 dt-bindings: serial: samsung: add specific compatible for Tesla FSD
6dedf66f0e8b dt-bindings: pwm: samsung: add specific compatible for Tesla FSD
457e5d03f14d dt-bindings: i2c: exynos5: add specific compatible for Tesla FSD
4b7a14529669 dt-bindings: mmc: renesas,sdhi: Document RZ/Five SoC
a135e0045af7 dt-bindings: mmc: arasan,sdci: Add gate property for Xilinx platforms
d0ed6c92c98e dt-bindings: mmc: sdhci-of-dwcmhsc: Add T-Head TH1520 support
f7a9df14027b dt-bindings: net: microchip,ksz: document microchip,rmii-clk-internal
b81aa4a5992d media: dt-bindings: mediatek: Add phandle to mediatek,scp on MDP3 RDMA
b80f939c4051 dt-bindings: iio/adc: qcom,spmi-vadc: clean up examples
44c4f2c40551 dt-bindings: iio/adc: qcom,spmi-vadc: fix example node names
c57fab0a68f9 dt-bindings: iio/adc: qcom,spmi-rradc: clean up example
f330b6a06a10 dt-bindings: iio/adc: qcom,spmi-iadc: clean up example
d089bb38e3f6 dt-bindings: iio/adc: qcom,spmi-iadc: fix example node name
d92310a0b805 dt-bindings: iio/adc: qcom,spmi-iadc: fix reg description
6afb70912c0a Merge tag 'renesas-dts-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
77be7b2ec3d6 arm64: dts: ti: Add verdin am62 mallow board
5fe3785a98a1 dt-bindings: arm: ti: Add verdin am62 mallow board
7bf01a4e3239 ASoC: dt-bindings: fsl,xcvr: Adjust the number of interrupts
568ee5fdf77d dt-bindings: interconnect: Add Qualcomm SM6115 NoC
7549b7adec53 arm64: dts: ti: verdin-am62: Improve spi1 chip-select pinctrl
0b160138fdcc arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Remove HDMI Reset Line Name
42aed107725d arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Add HDMI support
766ac2241c85 arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Lower I2C1 frequency
bcf7dd5b8b09 arm64: dts: ti: phycore-am64: Add R5F DMA Region and Mailboxes
e1dfb1eb87a4 riscv: dts: microchip: add the mpfs' system controller qspi & associated flash
59d2f723c14b dt-bindings: soc: microchip: add a property for system controller flash
4b452a4cfa9e ARM: dts: imx23/28: Remove undocumented "fsl,clkctrl"
485e1601cd25 ARM: dts: bcm2711: Add BCM2711 xHCI support
439353e944b0 dt-bindings: usb: xhci: Add support for BCM2711
4b95e8b40522 ARM: dts: imx28-lwe: Pass device_type to the memory node
ea0431aa1757 ARM: dts: imx23/28: Remove unneeded "fsl,mxs-gpio"
e63738dd96c8 ARM: dts: imx28-tx28: Pass #sound-dai-cells
fc88878c01c0 arm64: dts: imx8mq-phanbell: make dts use gpio-fan matrix instead of array
e21fe3809cd3 arm64: dts: freescale: verdin-imx8mp: add support to mallow board
a75cfdc4a966 arm64: dts: freescale: verdin-imx8mm: add support to mallow board
3b7bee60295f arm64: dts: imx8mm-venice-gw7: Adjust PCI Ethernet nodes
5241ecb06203 dt-bindings: arm: fsl: add verdin imx8mp mallow board
b80ecc880136 dt-bindings: arm: fsl: add verdin imx8mm mallow board
ad1ae2498610 arm64: dts: imx8mm: Slow default video_pll1 clock rate
5aa830cec5a3 arm64: dts: imx8mm: Remove video_pll1 clock rate from clk node
110274d03548 arm64: dts: imx8mm: Simplify mipi_dsi clocks
99d898689e0b ARM: dts: imx7s: Add on-chip memory
29d17af3b09b ARM: dts: imx7: add MIPI-DSI support
d9c25edf04ae scsi: ufs: dt-bindings: Add msi-parent for UFS MCQ
dba1025f17d0 ARM: dts: nxp: Fix some common switch mistakes
4ea7b578957d arm64: dts: freescale: minor whitespace cleanup around '='
dbb52d93894b arm64: dts: imx8dxl-ss-ddr: change ddr_pmu0 compatible
941d70d2ae55 arm64: dts: tqma8mpql: Remove invalid/unused property
ec00a410133c arm64: dts: imx8-ss-audio: Remove unexistent'shared-interrupt'
604139ed79f6 arm64: dts: imx93: Remove unexistent 'shared-interrupt'
7a445842e287 arm64: dts: imx8qxp-mek: Fix gpio-sbu-mux compatible
0c2122b767be arm64: dts: imx8mp-debix-model-a: Use phy-mode
2e9827c5e054 arm64: dts: imx8mm-nitrogen-r2: Fix I2C mux subnode name
d1e22a0dfb43 arm64: dts: imx8dxl-ss-conn: Fix Ethernet interrupt-names order
6299d7ae35e5 arm64: dts: imx8mm-emcon-avari: Fix gpio-cells
9de3f32f3c7d arm64: dts: imx8qm-ss-dma: Pass lpuart dma-names
6905c613057b arm64: dts: freescale: Add SKOV IMX8MP CPU revB board
b20a05f3b464 arm64: dts: imx8mn-var-som-symphony: add vcc supply for PCA9534
a5a6af3c0bdd arm64: dts: freescale: introduce rve-gateway board
83600000758e arm64: dts: freescale: debix-som-a-bmb-08: Add CSI Power Regulators
b5e632bcd082 arm64: dts: imx8-apalis: add can power-up delay on ixora board
9804057f0f96 arm64: dts: imx8mn-var-som: add fixed 3.3V regulator for EEPROM
e3c93255cfdb arm64: dts: imx8mm-venice-gw7: Fix pci sub-nodes
8357f0b7ae64 arm64: dts: imx8mp: Disable dsp reserved memory by default
3b2b78d127df arm64: dts: imx8mp: Add NPU Node
b13969aeeefc arm64: dts: freescale: debix-som: Add heartbeat LED
5c6068a3aecc arm64: dts: freescale: Add dual-channel LVDS overlay for TQMa8MPxL
37dbfb74c066 arm64: dts: imx8mp-venice-gw74xx: remove unecessary propreties in tpm node
12f50b18b3a5 ARM: dts: nxp: minor whitespace cleanup around '='
7e4a296e0073 ARM: dts: imx7d-colibri-emmc: Add usdhc aliases
aac483d2d190 ARM: dts: imx6qdl-colibri: Add usdhc aliases
534d21c04c41 ARM: dts: imx6qdl-apalis: Add usdhc aliases
4105f51d0c63 ARM: dts: nxp: imx7d-pico: add cpu-supply nodes
4a5f36c1120b dt-bindings: arm: Add compatible for SKOV i.MX8MP RevB board
7efe4371f644 dt-bindings: arm: fsl: add RVE gateway board
3c86e357feb0 dt-bindings: vendor-prefixes: add rve
04660a3dbd9f ARM: dts: broadcom: Add BCM63138's high speed UART
2e36ee7e60cd arm64: dts: ti: k3-am62x: Add overlay for IMX219
8478bfdedc00 arm64: dts: ti: k3-am62a7-sk: Enable camera peripherals
a361c10e44cc arm64: dts: ti: k3-am62x: Add overlays for OV5640
820399f7bf0f arm64: dts: ti: k3-am62x-sk: Enable camera peripherals
4de948eeb982 arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640
8d6be01e5e7c arm64: dts: ti: k3-am62a-main: Enable CSI2-RX
d52951f9d78a arm64: dts: ti: k3-am62-main: Enable CSI2-RX
4d667e27b3fd arm64: dts: ti: k3-am65: Add AM652 dtsi file
3d2161ed0c2b dt-bindings: perf: fsl-imx-ddr: Add i.MX8DXL compatible
189fe310f16e dt-bindings: clock: support i.MX93 ANATOP clock module
b44d3f817227 ARM: dts: imx: tqma7: add lm75a sensor (rev. 01xxx)
b654e96c546e dt-bindings: display: simple: add Evervision VGG644804 panel
05a02c1a58e1 dt-bindings: ili9881c: Add Ampire AM8001280G LCD panel
96be0427a528 ARM: dts: rockchip: Move uart aliases to SoC dtsi for RK3128
18c0b8b47af4 ARM: dts: rockchip: Move i2c aliases to SoC dtsi for RK3128
0191774d40bb ARM: dts: rockchip: Move gpio aliases to SoC dtsi for RK3128
4b6344ed1b32 ARM: dts: rockchip: Add Sonoff iHost Smart Home Hub
3cbab293b053 dt-bindings: arm: rockchip: Add Sonoff iHost
afacdf8be4db ARM: dts: rockchip: Add rv1109 SoC
ad1e5ad721a5 ARM: dts: rockchip: Split up rgmii1 pinctrl on rv1126
fc0ef88ee0a1 ARM: dts: rockchip: Add i2c2 node to rv1126
bf739d2f67ae ARM: dts: rockchip: Serial aliases for rv1126
049605e5080d ARM: dts: rockchip: Add alternate UART pins to rv1126
59e8d345382e ARM: dts: rockchip: Enable GPU for XPI-3128
464bddcf0726 ARM: dts: rockchip: Add GPU node for RK3128
8af06043d850 ARM: dts: rockchip: Add power-controller for RK3128
8f65bb97112e dt-bindings: display: himax-hx8394: Add Powkiddy X55 panel
ed2d8407a82d dt-bindings: display: Document Himax HX8394 panel rotation
5319f5062c10 dt-bindings: display: simple: Add boe,bp101wx1-100 panel
db09be0ff97b ARM: dts: imx6q-apalis: add can power-up delay on ixora board
31fdbd1cd6c6 dt-bindings: display: msm: document the SM8650 Mobile Display Subsystem
52e16372d1c6 dt-bindings: display: msm: document the SM8650 DPU
258f55b8a6c7 dt-bindings: display: msm-dsi-controller-main: document the SM8650 DSI Controller
f06034e33173 dt-bindings: display: msm-dsi-phy-7nm: document the SM8650 DSI PHY
e7cafbdafccf dt-bindings: display: msm: Add SDM670 MDSS
58504ed9c645 dt-bindings: display/msm: sdm845-dpu: Describe SDM670
d8b80f6fd0c5 dt-bindings: display/msm: dsi-controller-main: add SDM670 compatible
0c71ce621111 arm64: dts: ti: k3-am625-beagleplay: Use UART name in pinmux name
0895f560a171 arm64: dts: ti: k3-am62a7-sk: Add interrupt support for IO Expander
696f6e8d6176 arm64: dts: ti: k3-am625-verdin: Enable Verdin UART2
145b9a5ffb00 arm64: dts: ti: k3-am62-main: Add gpio-ranges properties
0d95f5e22dde arm64: dts: ti: k3-am64: Enable SDHCI nodes at the board level
8ccabbb5322f arm64: dts: ti: k3-am65: Enable SDHCI nodes at the board level
4b9d0ee63df8 arm64: dts: ti: k3-am65: Add full compatible to dss-oldi-io-ctrl node
b64af72b8e7b arm64: dts: ti: k3-j784s4: Add chipid node to wkup_conf bus
a70ca898f980 arm64: dts: ti: k3-j721s2: Add chipid node to wkup_conf bus
638e0242808a arm64: dts: ti: k3-j721e: Add chipid node to wkup_conf bus
0b0e18c3dce2 arm64: dts: ti: k3-j7200: Add chipid node to wkup_conf bus
16b21e3cf2ea arm64: dts: ti: k3-am65: Add chipid node to wkup_conf bus
ba6541592794 dt-bindings: iio: light: isl76682: Document ISL76682
3678e1e114f2 dt-bindings: pinctrl: qcom,sm8550-lpass-lpi: add X1E80100 LPASS LPI
4854bb4b43e2 dt-bindings: pinctrl: pinctrl-single: add ti,j7200-padconf compatible
062b01e5c736 dt-bindings: iio: light: add support for Vishay VEML6075
3f170ed89d6f dt-bindings: usb: tps6598x: add reset-gpios property
69a424bfd498 dt-bindings: iio/adc: ti,palmas-gpadc: Drop incomplete example
5cf3c6e7327b dt-bindings: adi,ad5791: Add support for controlling RBUF
7a11d1470ed1 dt-bindings: display: bridge: lt8912b: Add power supplies
562bb8392ec6 spi: spl022: fix sleeping in interrupt context
83c535a1ec6b dt-bindings: iio: honeywell,mprls0025pa: drop ref from pressure properties
7cb202a1a899 dt-bindings: media: add bindings for stm32 dcmipp
fce776c784a0 dt-bindings: media: Add bindings for THine THP7312 ISP
23c5bf41000e dt-bindings: media: i2c: add galaxycore,gc2145 dt-bindings
e6429afd32f1 dt-bindings: vendor-prefixes: Add prefix for GalaxyCore Inc.
d1287a3d111f dt-bindings: gpio: rockchip: add a pattern for gpio hogs
e08aefe3ce14 Merge tag 'qcom-dts-for-6.7-2' into arm32-for-6.8
66862cc676b1 ARM: dts: qcom: Add support for HTC One Mini 2
ac27d4b5eaa6 Merge tag 'v6.7-rc4' into media_stage
8a745825682b arm64: dts: qcom: sm6350: Make watchdog bark interrupt edge triggered
4de273b8d5cf arm64: dts: qcom: sc8280xp: Make watchdog bark interrupt edge triggered
94d4ed6b0efb arm64: dts: qcom: sa8775p: Make watchdog bark interrupt edge triggered
9e80723d8b4f arm64: dts: qcom: sm8250: Make watchdog bark interrupt edge triggered
ef5fa5d97caa arm64: dts: qcom: sm8150: Make watchdog bark interrupt edge triggered
3879bc4c1c04 arm64: dts: qcom: sdm845: Make watchdog bark interrupt edge triggered
8e7e69e2041a arm64: dts: qcom: sc7280: Make watchdog bark interrupt edge triggered
6584d8b4799e arm64: dts: qcom: sc7180: Make watchdog bark interrupt edge triggered
04f80707bc19 arm64: dts: qcom: sc8180x: drop duplicated PCI iommus property
04597b9d0b6f dt-bindings: arm: qcom: Add HTC One Mini 2
7ff927ff9139 dt-bindings: vendor-prefixes: document HTC Corporation
fa70da0426ea arm64: dts: qcom: sm8550: correct TX Soundwire clock
ed7e07a029d6 arm64: dts: qcom: sm8450: correct TX Soundwire clock
541ded0776d2 arm64: dts: qcom: sc8180x-primus: Fix HALL_INT polarity
39c752cf5603 arm64: dts: qcom: sc8280xp-crd: fix eDP phy compatible
e5319a1187df arm64: dts: qcom: sdm632-fairphone-fp3: Enable LPASS
daf6cf6a007f arm64: dts: qcom: msm8916-acer-a1-724: Add notification LED
2a186fbc9370 arm64: dts: qcom: ipq6018: use CPUFreq NVMEM
91d98fe1640a arm64: dts: qcom: msm8939-huawei-kiwi: Add initial device tree
6718a893d987 dt-bindings: arm: qcom: Add Huawei Honor 5X / GR5 (2016)
f36c60304a90 arm64: dts: qcom: msm8953: Use non-deprecated qcom,domain in LPASS
fa91149122fc arm64: dts: qcom: qrb2210-rb1: add wifi variant property
9862c76b6484 arm64: dts: qcom: qrb2210-rb1: Enable CAN bus controller
90510995b456 arm64: dts: qcom: qrb2210-rb1: Set up HDMI
f168a1f5fd2a arm64: dts: qcom: qcm2290: Hook up interconnects
a66c95bb5052 arm64: dts: qcom: qcm2290: Add display nodes
1b3d99e8ad9d arm64: dts: qcom: sc7280: Add the missing MDSS icc path
463b9cc7faa3 arm64: dts: qcom: sc7180: Add the missing MDSS icc path
a2b32f52593b arm64: dts: qcom: sc8280xp: Add QMP handle to RPMh stats
0541077473ea dt-bindings: soc: qcom: stats: Add QMP handle
46fd383def7f arm64: dts: qcom: sm8250-xiaomi-elish: Add pm8150b type-c node and enable usb otg
45ca7aacee21 arm64: dts: qcom: sm8250-xiaomi-elish: Fix typos
9dee357f1ff5 arm64: dts: qcom: msm8939-longcheer-l9100: Add proximity-near-level
d6b8367dbb65 arm64: dts: qcom: qrb4210-rb2: Enable bluetooth
9e8fcdbc4d75 arm64: dts: qcom: sm6115: Add UART3
e88a0c4a9117 arm64: dts: qcom: sdm632-fairphone-fp3: Enable WiFi/Bluetooth
a808b8c6d7f4 dt-bindings: arm: qcom: Fix html link
004244e4cbd5 arm64: dts: qcom: Add base qcs6490-rb3gen2 board dts
3f55e77ebc86 arm64: dts: qcom: Add base qcm6490 idp board dts
9e08836a864f dt-bindings: arm: qcom: Add QCM6490 IDP and QCS6490 RB3Gen2 board
c538a9224903 arm64: dts: qcom: sm4450-qrd: mark QRD4450 reserved gpios
34764956c2e4 arm64: dts: qcom: sm4450-qrd: add QRD4450 uart support
b5fe030e21e0 arm64: dts: qcom: sm4450: add uart console support
76478ce29df3 arm64: dts: qcom: sm4450: Add RPMH and Global clock
52ea11ee57e9 arm64: dts: qcom: sm4450: Add apps_rsc and cmd_db node
d42f9497ccad arm64: dts: qcom: ipq8074: pass QMP PCI PHY PIPE clocks to GCC
9b98d0a1718e dt-bindings: clocks: qcom,gcc-ipq8074: allow QMP PCI PHY PIPE clocks
2417b30e3609 arm64: dts: qcom: msm8953: add SPI interfaces
66dd2b49a0b3 arm64: dts: qcom: qcm6490-fairphone-fp5: Add PM7325 thermals
0b651704285a arm64: dts: qcom: qcm6490-fairphone-fp5: Add PMK7325 thermals
8630d7baedf5 arm64: dts: qcom: qcm6490-fairphone-fp5: Add PM7250B thermals
959371b1b650 iio: adc: Add PM7325 PMIC7 ADC bindings
b1e6472aae24 arm64: dts: qcom: sm8250: Add OPP table support to UFSHC
6aeff20d0bd6 arm64: dts: qcom: sdm845: Add OPP table support to UFSHC
e8d1d500097e ARM: dts: qcom: msm8974: Add watchdog node
615027dbbe1d dt-bindings: arm: qcom: drop the IPQ board types
ebb3e763ee5b arm64: dts: qcom: ipq5018: enable the CPUFreq support
3ca74e9810cf dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
dcbafe8963f4 ARM: dts: qcom: sdx65: correct SPMI node name
98b030d58c93 ARM: dts: qcom: sdx65: add missing GCC clocks
07a16205d0e0 ARM: dts: qcom: sdx65: correct PCIe EP phy-names
fe48cd5331dc dt-bindings: display: msm: Add reg bus and rotator interconnects
8c1892c5f696 dt-bindings: display: msm: qcm2290-mdss: Use the non-deprecated DSI compat
7cfd5769a991 dt-bindings: display/msm: qcom, sm8150-mdss: correct DSI PHY compatible
91abf991ed4a dt-bindings: display/msm: qcom, sm8250-mdss: add DisplayPort controller node
c203dee53e38 ARM: dts: rockchip: Enable gmac for XPI-3128
a31102a06882 ARM: dts: rockchip: Add gmac node for RK3128
d02bab784773 dt-bindings: gpu: mali-utgard: Add Rockchip RK3128 compatible
61b6b8e5340b dt-bindings: net: qcom,ipa: document SM8650 compatible
a0fa8df10233 Merge tag 'renesas-pinctrl-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
6c58c6977828 dt-bindings: gpio: modepin: Describe label property
7f00d1c96321 dt-bindings: display: ti: Add support for am62a7 dss
6bed64726635 arm64: dts: ti: k3-am68-sk-base-board: Add alias for MCU CPSW2G
f494c9948974 arm64: dts: ti: iot2050: Add icssg-prueth nodes for PG2 devices
403938b5222f arm64: dts: ti: iot2050: Refactor the m.2 and minipcie power pin
45e3b6aa9185 arm64: dts: ti: iot2050: Definitions for runtime pinmuxing
b14c51a347fb arm64: dts: ti: iot2050: Drop unused ecap0 PWM
38f52ad2cea9 arm64: dts: ti: iot2050: Re-add aliases
a84e54a6c2a0 arm64: dts: ti: k3-am62x-sk-common: Mark mcu gpio and mcu_gpio_intr as reserved
0baa456c51ce arm64: dts: ti: k3-am62p5-sk: Mark mcu gpio and mcu_gpio_intr as reserved
131aadfec025 arm64: dts: ti: k3-am642-evm/sk: Mark mcu_gpio_intr as reserved
bbda0d8be30e arm64: dts: ti: k3-am64-main: Fix typo in epwm_tbclk node name
5e8876dba890 arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
fd78a91dedf3 arm64: dts: ti: k3-am62a-main: Fix GPIO pin count in DT nodes
05614d5b4f00 arm64: dts: ti: minor whitespace cleanup around '='
ca6dff24071e ARM: dts: omap4-embt2ws: Add Bluetooth
cff0864e2eea Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
2a2ae1545117 dt-bindings: input: gpio-keys: Allow optional dedicated wakeirq
aed93474ebc0 Merge patch series "Add Huashan Pi board support"
318917bad2c6 riscv: dts: sophgo: add Huashan Pi board device tree
8a2824be66df riscv: dts: sophgo: add initial CV1812H SoC device tree
3ff295494c04 riscv: dts: sophgo: cv18xx: Add gpio devices
dfcd3e4c81d9 riscv: dts: sophgo: Separate compatible specific for CV1800B soc
8c5d4ad957fa dt-bindings: riscv: Add SOPHGO Huashan Pi board compatibles
e393d2e6705e dt-bindings: timer: Add SOPHGO CV1812H clint
65cc6be0d442 dt-bindings: interrupt-controller: Add SOPHGO CV1812H plic
dce8266bb548 ARM: dts: omap: logicpd-torpedo: do not disguise GNSS device
0f0cee70a881 ARM: dts: omap4-embt2ws: enable 32K clock on WLAN
33dfdcf03832 ARM: dts: ti/omap: Replace deprecated extcon-usb-gpio id-gpio/vbus-gpio properties
aa5a9a109405 dt-bindings: power: meson-g12a-power: document ISP power domain
a9f86a1f45b5 dt-bindings: marvell: Add Marvell MV88E6060 DSA schema
5024553a10f5 dt-bindings: marvell: Rewrite MV88E6xxx in schema
ad4c44e96eec dt-bindings: net: ethernet-switch: Accept special variants
17baedd697fb dt-bindings: net: mvusb: Fix up DSA example
9c7ccdf2dc30 dt-bindings: net: dsa: Require ports or ethernet-ports
8adbf64f3cdd dt-bindings: input: mediatek,pmic-keys: Drop incomplete example
cdc098b167e1 dt-bindings: input: sprd,sc27xx-vibrator: Drop incomplete example
0629a76a9d04 dt-bindings: correct white-spaces in examples
2f78b6dd5c42 dt-bindings: reset: hisilicon,hi3660-reset: Drop providers and consumers from example
f835598ebf60 dt-bindings: arm/calxeda: drop unneeded quotes
0d2567437a54 dt-bindings: fsl,dpaa2-console: drop unneeded quotes
352ed027a423 dt-bindings: interrupt-controller: qcom,pdc: document pdc on X1E80100
df641036bac4 dt-bindings: qcom,pdc: document the SM8650 Power Domain Controller
1e17b2ba4499 dt-bindings: interrupt-controller: Add SDX75 PDC compatible
c0aff4abb03a dt-bindings: reset: imx-src: Simplify compatible schema and drop unneeded quotes
df20c9f94014 dt-bindings: reset: qcom: drop unneeded quotes
1516b28c7069 dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/Five SoC
a80bc27a0fe8 dt-bindings: reset: Add compatible and DT bindings for Amlogic C3 Reset Controller
0b8db84ecfc4 ASoC: Intel: Soundwire related board and match updates
303600aff1ef Merge v6.7-rc3 into drm-next
d03f6dca688d arm64: dts: rockchip: Use NCM6A-IO board for edgeble-neu6b
2dcf7dbe2812 dt-bindings: arm: rockchip: Update edgeble-neu6 bindings
b2a45d98f95b arm64: dts: rockchip: add USB3 host on rk3588s-orangepi-5
766aa3119c2f ARM: dts: motorola-mapphone: Add basic support for mz609 and mz617
3ea15a23d9c7 ARM: dts: motorola-mapphone: Move handset devices to a common file
5127524f7e6f ARM: dts: motorola-mapphone: Move LCD to common file for xt875 and xt894
7e16bd264a3a dt-bindings: omap: Add Motorola mapphone mz609 and mz617 tablets
7d420d843f98 ARM: dts: renesas: r9a06g032: Add missing space in compatible
0faa59be192f arm64: dts: renesas: r9a09g011: Add missing space in compatible
807cfe5cde5c dt-bindings: phy: add compatible for Mediatek MT8195
c52707b1bf77 dt-bindings: phy: amlogic,g12a-mipi-dphy-analog: drop unneeded reg property and example
34ec5dda2a01 dt-bindings: phy: amlogic,meson-axg-mipi-pcie-analog: drop text about parent syscon and drop example
f738d7a9dfab dt-bindings: iommu: dart: Add t8103-usb4-dart compatible
2c963cfa7e8e ARM: dts: renesas: armadillo800eva: Add LCD panel
a35135dad31c dt-bindings: pinctrl: renesas: Drop unneeded quotes
d5212619f0a0 ARM: dts: renesas: r8a7740: Add LCDC nodes
048bdb67a0f6 arm64: dts: renesas: draak: Move HDMI bus properties to correct node
ab52a67f9767 arm64: dts: renesas: draak: Make HDMI the default video input
dab3ba03f28c Merge 6.7-rc3 into usb-next
ec6cd76a8793 arm64: dts: meson-axg: jethub-jxx add support for EEPROM
2da076589eac arm64: dts: amlogic: meson-axg: pinctrl node for NAND
cdc5df918882 arm64: dts: amlogic: minor whitespace cleanup around '='
a5dead35fc4b arm64: dts: Add watchdog node for Amlogic S4 SoCs
37c5369b4667 arm64: dts: Add watchdog node for Amlogic C3 SoCs
1d8b2a265b81 dt-bindings: soc: amlogic,meson-gx-hhi-sysctrl: add example covering meson-axg-hhi-sysctrl
9556e1708419 ARM: dts: imx7s: Add DMA channels for CSPI peripherals
c1e5b6c6855f arm64: dts: imx8mp-venice-gw72xx: add TPM device
fc1ee0050ce4 arm64: dts: imx8mm-venice-gw72xx: add TPM device
5a125bf20bf1 arm64: dts: imx93: update anatop node
292fc296ecdd arm64: dts: imx93-11x11-evk: add 12 ms delay to make sure the VDD_SD power off
b81451d8d4d3 arm64: dts: imx93: change tuning start to get a large scan range for standard tuning
7ee940495143 arm64: dts: imx93-11x11-evk: set SION for cmd and data pad of USDHC
1b2037987962 arm64: dts: imx8mp: Describe M24C32-D write-lockable page in DH i.MX8MP DHCOM DT
94d5d7d36ba8 ARM: dts: imx6ul: mba6ulx: fix typo in comments
cbbed6036bfe ARM: dts: imx6qdl: mba6: fix typo in comments
e6c50d6fd99e arm64: dts: imx8mp-beacon-kit: Enable DSI to HDMI Bridge
3743277142d0 arm64: dts: imx8mm: Add CCM interrupts
663758efb819 arm64: dts: imx8mn: Add CCM interrupts
88774bafda13 arm64: dts: imx8mp: Add CCM interrupts
e4d9f4208c6c ARM: dts: imx7s: Add missing #thermal-sensor-cells
e4c3f040fee6 ARM: dts: imx7s: Fix nand-controller #size-cells
62a7c97c7c3f ARM: dts: imx7s: Fix lcdif compatible
9f3037b332bf ARM: dts: imx7d: Fix coresight funnel ports
d844fe5270b1 arm64: dts: freescale: add initial device tree for MBa93xxCA starter kit
ad161fbd54ca arm64: dts: freescale: tqma9352-mba93xxla: add 'chassis-type' property
8ec09c8f530c arm64: dts: imx93: Configure clock rate for audio PLL
9d7ba48273ea arm64: dts: imx93: Add audio device nodes
b1553710809c dt-bindings: iio: hmc425a: add entry for ADRF5740 Attenuator
471ace1f09be dt-bindings: gpio: brcmstb: drop unneeded quotes
f8159413e6f1 ARM: dts: ti: keystone: minor whitespace cleanup around '='
381a63044158 dt-bindings: clock: g12a-clkc: add MIPI ISP & CSI PHY clock ids
c1ad3e49f07c dt-bindings: clk: g12a-clkc: add CTS_ENCL clock ids
c8fb56a76774 dt-bindings: dma: qcom,gpi: document the SM8650 GPI DMA Engine
8e868f10ea21 dt-bindings: dma: rz-dmac: Document RZ/Five SoC
e1504d7602c0 dt-bindings: net: qcom,ipa: add SM8550 compatible
f118e169a194 dt-bindings: dma: qcom: gpi: add compatible for X1E80100
11518ff4d13c dt-bindings: pinctrl: qcom: Add X1E80100 pinctrl
d3fe1008f0c8 ASoC: dt-bindings: correct white-spaces in examples
f9b11918132f dt-bindings: crypto: convert Inside Secure SafeXcel to the json-schema
52b8a84c5283 dt-bindings: dma: ti: k3-udma: Describe cfg register regions
9b2e4fa1e7f2 dt-bindings: dma: ti: k3-pktdma: Describe cfg register regions
6d91e2a3766b dt-bindings: dma: ti: k3-bcdma: Describe cfg register regions
ea1d92699d2a dt-bindings: dma: ti: k3-*: Add descriptions for register regions
7cf45f021d31 arm64: dts: exynosautov9: use Exynos7 fallbacks for pin wake-up controller
dc0e2a7e69c2 arm64: dts: exynos850: use Exynos7 fallbacks for pin wake-up controllers
185cc3e40c9f dt-bindings: pinctrl: samsung: use Exynos7 fallbacks for newer wake-up controllers
54829849af39 Merge branch 'icc-x1e80100' into icc-next
8e2202f335a4 dt-bindings: interconnect: Add Qualcomm X1E80100 SoC
54f1f68e019b dt-bindings: interconnect: qcom-bwmon: document SM8650 BWMONs
4e7bf80ce812 dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm SM8650 SoC
615397ecb02b Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
e673bd9cbb13 dt-bindings: serial: fsl-linflexuart: change the maintainer email address
f79b00fe4cab dt-bindings: serial: renesas,sci: Document RZ/Five SoC
911d5cce2a4e Merge tag 'drm-misc-next-2023-11-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
ab1f350663b1 dt-bindings: power: rpmpd: Update part number to X1E80100
6fe8e1a8dc99 dt-bindings: backlight: mp3309c: Remove two required properties
cc4e22233cb5 dt-bindings: usb: qcom,dwc3: adjust number of interrupts on SM6125
9161184d7271 dt-bindings: net: renesas,ethertsn: Add Ethernet TSN
788d52642da4 Merge tag 'v6.7-rc2' into media_stage
d2975fb00035 dt-bindings: gpu: Add Imagination Technologies PowerVR/IMG GPU
59078ccb21d1 dt-bindings: usb: qcom,dwc3: document the SM8560 SuperSpeed DWC3 USB controller
627316c016dd dt-bindings: usb: renesas,usbhs: Document RZ/Five SoC
99b07ecabc3d dt-bindings: cache: sifive,ccache0: Add StarFive JH7100 compatible
0118ff6d8abd ASoC: dt-bindings: fsl,mqs: Convert format to json-schema
0a9a12593184 ASoC: dt-bindings: sound-card-common: List sound widgets ignoring system suspend
165648aad162 ARM: dts: stm32: add SPI support on STM32F746
8f3fa20269a0 ARM: dts: stm32: add STM32F746 syscfg clock
dc50601ba2d8 dt-bindings: net: xlnx,axi-ethernet: Introduce DMA support
72d23e1de1b0 arm64: dts: imx8mp: Add reserve-memory nodes for DSP
9bab315d31f8 spi: axi-spi-engine improvements
23a75f159231 ARM: dts: stm32: use the same 3v3 for SD and DSI nodes on stm32f469-disco
4656437906e9 ARM: dts: rockchip: Make usbphy the parent of SCLK_USB480M for RK3128
25251d661471 ARM: dts: rockchip: Add dwc2 otg fifo siztes for RK3128
2d36fa2aa286 ARM: dts: rockchip: Add USB host clocks for RK3128
4e1bd401bbe3 ARM: dts: rockchip: Add Geniatech XPI-3128 RK3128 board
7e6458d9a7f3 ARM: dts: rockchip: Add sdmmc_det pinctrl for RK3128
12867f1ccb42 dt-bindings: arm: rockchip: Add Geniatech XPI-3128
fda729bcbd69 arm64: dts: rockchip: Add Powkiddy RK2023
317a36f59e1b arm64: dts: rockchip: Update powkiddy,rgb30 include to rk2023 DTSI
dc9a81379af6 dt-bindings: arm: rockchip: Add Powkiddy RK2023
70a31fd9ffa3 dt-bindings: spi: axi-spi-engine: convert to yaml
b68504144dbe Merge tag 'drm-misc-next-2023-11-17' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
8260e721d1b5 dt-bindings: display: nv3051d: Update NewVision NV3051D compatibles
0a502f9716cc arm64: dts: renesas: rzg3s-smarc: Enable SDHI1
eccf7ee1aefe arm64: dts: renesas: rzg3s-smarc-som: Enable SDHI2
fbd14cd9ff35 ARM: dts: microchip: sam9x60ek: Add IRQ support for ethernet PHY
c86d9749ca2a ARM: dts: microchip: sam9x60_curiosity: Add IRQ support for ethernet PHY
1e1f6887a01b arm64: dts: allwinner: h616: add Orange Pi Zero 2W support
5795c68b5edc dt-bindings: arm: sunxi: add Orange Pi Zero 2W
a5b7fa02fbde dt-bindings: crypto: qcom,prng: document SM8650
53be5450f8ac dt-bindings: crypto: qcom-qce: document the SM8650 crypto engine
e65dc233e98b dt-bindings: crypto: qcom,inline-crypto-engine: document the SM8650 ICE
d2a2bd80cca6 dt-bindings: net: renesas,etheravb: Document RZ/Five SoC
f491b5315b58 dt-bindings: Document Marvell Aquantia PHY
7b52e889e53f arm64: dts: rockchip: add analog audio to RK3588 EVB1
92de4720f37c spi: dt-bindings: renesas,rspi: Document RZ/Five SoC
6e54c4bd7590 ASoC: dt-bindings: renesas,rz-ssi: Document RZ/Five SoC
87bb03481662 dt-bindings: adis16460: Add 'spi-cs-inactive-delay-ns' property
91e2c8ceb4de dt-bindings: adis16475: Add 'spi-cs-inactive-delay-ns' property
f9fe5526efd5 dt-bindings: iio: Add MCP9600 thermocouple EMF converter
9942ece9d870 dt-bindings: iio: imu: Add Bosch BMI323
49d380d6e152 dt-bindings: adc: provide max34408/9 device tree binding document
895869158303 dt-bindings: media: wave5: add yaml devicetree bindings
77bf61c28407 dt-bindings: arm: Add support for DSB MSR register
18adf91da0ca dt-bindings: arm: Add support for DSB element size
075ac55ca93b dt-bindings: phy: qcom,snps-eusb2: document the SM8650 Synopsys eUSB2 PHY
fda8409f7058 dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: document the SM8650 QMP USB/DP Combo PHY
b0b6815d9143 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: document the SM8650 QMP PCIe PHYs
db24b834638a dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: document the SM8650 QMP UFS PHY
6a737e056a8b media: dt-bindings: Add JH7110 Camera Subsystem
716cbea9d35a dt-bindings: power: reset: $ref reboot-mode in nvmem-reboot-mode
c8dedfdf167b dt-bindings: power: reset: $ref reboot-mode in syscon-reboot-mode
6c14a95472bb ARM: dts: samsung: s5pv210: fix camera unit addresses/ranges
866767db6bbb ARM: dts: samsung: exynos4: fix camera unit addresses/ranges
f0d3848e2cef ARM: dts: samsung: exynos4x12: replace duplicate pmu node with phandle
dc6ff9889013 dt-bindings: w1: Add AMD AXI w1 host and MAINTAINERS entry
a8a9188e96a6 dt-bindings: power: fsl,scu-pd: Document imx8dl
f06b78172daa dt-bindings: qcom,pdc: Add compatible for SM8550
7a87643120eb dt-bindings: input: samsung,s6sy761: convert to DT schema
e4ccdd770c53 Merge branch 'for-v6.8/samsung-bindings-compatibles' into next/dt64
7b213bd80e13 dt-bindings: hwinfo: samsung,exynos-chipid: add exynosautov920 compatible
892b87e000d2 dt-bindings: arm: samsung: Document exynosautov920 SADK board binding
ce1b89aee7ea dt-bindings: pwm: samsung: add exynosautov920 compatible
5e6bd42714ad dt-bindings: serial: samsung: add exynosautov920-uart compatible
3ea12f0eff84 dt-bindings: samsung: usi: add exynosautov920-usi compatible
5b6e042a72b8 dt-bindings: samsung: exynos-pmu: add exynosautov920 compatible
2dff85192843 dt-bindings: samsung: exynos-sysreg: add exynosautov920 sysreg
3123103c12c0 dt-bindings: pinctrl: samsung: add exynosautov920
5b929ffdc9be arm64: dts: exynos: add gpio-key node for exynosautov9-sadk
6bc5effbe8dd arm64: dts: exynosautov9: add specific compatibles to several blocks
25addf827769 arm64: dts: exynos850: add specific compatibles to several blocks
5ab70c11f08f arm64: dts: exynos7885: add specific compatibles to several blocks
f7c77a1ea95a arm64: dts: exynos7: add specific compatibles to several blocks
56493af64c01 arm64: dts: exynos5433: add specific compatibles to several blocks
3530786802b6 dt-bindings: pwm: samsung: add specific compatibles for existing SoC
97419692fe3c ASoC: dt-bindings: samsung-i2s: add specific compatibles for existing SoC
7081448ca2cf dt-bindings: iio: samsung,exynos-adc: add specific compatibles for existing SoC
973115e1f51f dt-bindings: gpu: arm,mali-midgard: add specific compatibles for existing Exynos SoC
6b99281097f0 dt-bindings: samsung: exynos-pmu: add specific compatibles for existing SoC
a893a294345b dt-bindings: serial: samsung: add specific compatibles for existing SoC
2a3d0691d56f dt-bindings: rtc: s3c-rtc: add specific compatibles for existing SoC
7e49408d51e6 dt-bindings: pinctrl: samsung: add specific compatibles for existing SoC
1bb1eca74ad5 Merge drm/drm-next into drm-misc-next
e9731895ee20 dt-bindings: mmc: samsung,exynos-dw-mshc: add specific compatibles for existing SoC
33b5aa8f7d9a ARM: dts: qcom: mdm9615: drop qcom, prefix from SSBI node name
fa1f536e3df0 ARM: dts: qcom: ipq8064: drop qcom, prefix from SSBI node name
4e5382dc8820 ARM: dts: qcom: apq8060-dragonboard: rename mpp ADC channels to adc-channel
6be6ba7888ef ARM: dts: qcom: pm8921: Disable keypad by default
5917ae72cd70 ARM: dts: qcom: msm8974: move regulators to board files
551cbcd2547c ARM: dts: qcom: msm8960: drop useless rpm regulators node
6d9878cc6a6a ARM: dts: qcom: msm8660: move RPM regulators to board files
d0ed11e33ba0 ARM: dts: qcom: mdm9615: move RPM regulators to board files
1c636116afea ARM: dts: qcom: apq8064: move RPM regulators to board files
b9d11fecae9e ARM: dts: qcom: pm8058: switch to interrupts-extended
e8a26b432fd4 ARM: dts: qcom: pm8018: switch to interrupts-extended
86831cb445f6 ARM: dts: qcom: pm8921: switch to interrupts-extended
6d6c0b95e077 ARM: dts: qcom: pm8058: use defined IRQ flags
9d0903209824 ARM: dts: qcom: pm8921: move reg property
6a63db48b660 ARM: dts: qcom: pm8018: move reg property
9d6af1dd4790 ARM: dts: qcom: pm8921: reorder nodes
5db5515193a6 ARM: dts: qcom: pm8058: reorder nodes
d4df6f1babb5 ARM: dts: qcom: msm8660: split PMIC to separate dtsi files
c56480ffb4b8 ARM: dts: qcom: mdm9615: split PMIC to separate dtsi files
f8574d2c7c62 ARM: dts: qcom: apq8064: split PMICs to separate dtsi files
298695290d90 ARM: dts: qcom: msm8960: split PMIC to separate dtsi files
1c3c930ec46c ARM: dts: qcom: msm8960: move PMIC interrupts to the board files
7f5541db889f ARM: dts: qcom: msm8660: move PMIC interrupts to the board files
812cfe71b26a ARM: dts: qcom: mdm9615: move PMIC interrupts to the board files
f5c8a18b7116 ARM: dts: qcom: apq8064: move PMIC interrupts to the board files
b7510b8da2f6 ARM: dts: qcom: msm8960: fix PMIC node labels
6475671dcca1 ARM: dts: qcom: msm8660: fix PMIC node labels
4dfac4d841ef ARM: dts: qcom: mdm9615: fix PMIC node labels
07091c1b87fb ARM: dts: qcom: apq8064: fix PMIC node labels
155004433670 ARM: dts: qcom: strip prefix from PMIC files
21220b16b281 ARM: dts: qcom: mdm9615-wp8548-mangoh-green: group include clauses
3d3f8059a9f6 ARM: dts: qcom: apq8064-nexus7: move sdcc1 node to proper place
b9d136b033b8 ARM: dts: qcom: msm8660-surf: use keypad label directly
fc4f79da1abe ARM: dts: qcom: msm8960: introduce label for PMIC keypad
0e33f3448e7c ARM: dts: qcom: apq8064: correct XOADC register address
9bed8b24890a ARM: dts: qcom-sdx65: switch USB QMP PHY to new style of bindings
edfbe32172f4 ARM: dts: qcom-sdx55: switch USB QMP PHY to new style of bindings
c709366fb89e arm64: dts: qcom: sm8350: switch USB QMP PHY to new style of bindings
29a99a6d955d arm64: dts: qcom: sm8250: switch USB QMP PHY to new style of bindings
e13f8dc0ea91 arm64: dts: qcom: sm8150: switch USB QMP PHY to new style of bindings
bed6aed8ceec arm64: dts: qcom: sdm845: switch USB QMP PHY to new style of bindings
7cb8dff829b0 arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings
77a8ce42cb30 arm64: dts: qcom: msm8996: switch USB QMP PHY to new style of bindings
b92a18870b3e arm64: dts: qcom: ipq8074: switch USB QMP PHY to new style of bindings
18dd153b1c8f arm64: dts: qcom: ipq6018: switch USB QMP PHY to new style of bindings
ad3769d7933c Merge tag 'qcom-arm64-for-6.7-2' into arm64-for-6.8
8088e683c89b dt-bindings: i2c: samsung,s3c2410-i2c: add specific compatibles for existing SoC
c15df41a0c35 dt-bindings: i2c: exynos5: add specific compatibles for existing SoC
d755df63e9df dt-bindings: hwinfo: samsung,exynos-chipid: add specific compatibles for existing SoC
6f4cb3f40711 arm64: dts: renesas: rzg2lc-smarc-som: Enable 4-bit tx support
5ddba1791b2b arm64: dts: renesas: rzg2l-smarc-som: Enable 4-bit tx support
75b8e7f58abe regulator: add under-voltage support (part 2)
791f1550a798 Add DMIC slew rate controls
e128625eb7cb dt-bindings: pinctrl: document the SM8650 Top Level Mode Multiplexer
c3c85cc965c8 dt-bindings: pinctrl: qcom,sm8650-lpass-lpi-pinctrl: add SM8650 LPASS
6da3c9fd1509 ARM: dts: renesas: marzen: Rename keyboard nodes
2d7a77894ba8 ARM: dts: renesas: iwg22d-sodimm: Fix stmpe node names
f4c62eb4fbd6 arm64: dts: renesas: Add missing ADV751[13] power supply properties
a94c426db9b8 ARM: dts: renesas: Add missing ADV751[13] power supply properties
f213adc3b192 ARM: dts: renesas: rcar-gen2: Fix I2C bus demux node names
127c56414e9f riscv: dts: renesas: Convert isa detection to new properties
9836c1c69324 ARM: dts: renesas: blanche: Add FLASH node
d446795daa00 ARM: dts: renesas: marzen: Add FLASH node
9a4a8a78013a spi: add stm32f7-spi compatible
e74e9793f9c7 regulator: dt-bindings: Add 'regulator-uv-less-critical-window-ms' property
eafbf4f37d51 regulator: dt-bindings: Allow system-critical marking for fixed-regulator
52381ed5b4ac regulator: dt-bindings: Add system-critical-regulator property
ec8f058714a6 dt-bindings: regulator: qcom,smd-rpm-regulator: Document PM8937 IC
cf118cc80e89 dt-bindings: regulator: qcom,spmi-regulator: Document PM8937 PMIC
2ae471b5eeb2 ASoC: dt-bindings: use "soundwire" as controller's node name in examples
caa17228e281 ASoC: dt-bindings: qcom,sm8250: add SM8550 sound card
2d2f997a2bdc dt-bindings: es8328: convert to DT schema format
68e113702391 ASoC: dt-bindings: Simplify port schema
eac536a576c7 ASoC: dt-bindings: nau8821: Add DMIC slew rate.
409f501ee9b2 dt-bindings: gpu: v3d: Add BCM2712's compatible
22f7441e8685 dt-bindings: display: ssd132x: Remove '-' before compatible enum
a3de98e60ec5 ARM: dts: qcom: add device tree for Nokia Lumia 830
9ad6bcd4499d ARM: dts: qcom: add device tree for Nokia Lumia 735
41ee9ea2aefd ARM: dts: qcom: add device tree for Microsoft Lumia 640 XL
0dc127c0d612 ARM: dts: qcom: add device tree for Microsoft Lumia 640
d30c995f440e ARM: dts: qcom: add common dt for MSM8x26 Lumias along with Nokia Lumia 630
ed92546211d5 dt-bindings: arm: qcom: Document MSM8x26-based Lumia phones
d783936fa1dc arm64: dts: qcom: msm8939-longcheer-l9100: Enable RGB LED
b14cb550d720 arm64: dts: qcom: msm8916-longcheer-l8910: Enable RGB LED
183a2f447424 arm64: dts: qcom: msm8939-samsung-a7: Add sound and modem
9b7d68606781 arm64: dts: qcom: msm8916-samsung-j5: Add sound and modem
f382f197e0c5 arm64: dts: qcom: msm8916-samsung-gt5: Add sound and modem
59a815c1572d arm64: dts: qcom: msm8916-longcheer-l8910: Add sound and modem
582b4cfec9a9 ARM: dts: qcom: msm8226: provide dsi phy clocks to mmcc
1703230be2a6 ARM: dts: qcom: msm8974: sort nodes by reg
e23f302820cb ARM: dts: qcom: msm8974: replace incorrect indentation in interconnect
373015625e6b arm64: dts: qcom: msm8916-longcheer-l8150: Add sound and modem
c1a66861dc32 arm64: dts: qcom: msm8916-asus-z00l: Add sound and modem
489f91f0dfcc arm64: dts: qcom: msm8916-alcatel-idol347: Add sound and modem
2f81e02a3b04 arm64: dts: qcom: msm8916-wingtech-wt88047: Add sound and modem
07047876d71e arm64: dts: qcom: msm8916-samsung-serranove: Add sound and modem
1d94420f32b0 arm64: dts: qcom: msm8916-samsung-a2015: Add sound and modem
9334b10d351c arm64: dts: qcom: msm8916: Add common msm8916-modem-qdsp6.dtsi
30b857e0f639 arm64: dts: qcom: msm8939: Add QDSP6
5b210c47425a arm64: dts: qcom: msm8916: Add QDSP6
f1aed61c2c48 arm64: dts: qcom: msm8939: Add BAM-DMUX WWAN
702f57c12856 arm64: dts: qcom: sc8280xp-x13s: add missing camera LED pin config
d21fc2d89cfd arm64: dts: qcom: pm7250b: Use correct node name for gpios
ecc4cb08c0f3 arm64: dts: qcom: sc7280: Add Camera Control Interface busses
c01ef95e3aa7 arm64: dts: qcom: sdm845-xiaomi-beryllium: enable flash led
fe3ccb41dafa arm64: dts: qcom: sdm845-oneplus: enable flash LED
0f6538f89c64 arm64: dts: qcom: sc8280xp-x13s: Use the correct DP PHY compatible
c9e8e85b1afd arm64: dts: qcom: msm8916-*: Fix alphabetic node order
9e38e840740d arm64: dts: qcom: msm8939-longcheer-l9100: Enable wcnss_mem
5cdb05e593ef arm64: dts: qcom: msm8916-samsung-gt5: Enable GPU
0d72dfbbf352 arm64: dts: qcom: ipq5332: include the GPLL0 as clock provider for mailbox
13c545bfe884 arm64: dts: qcom: ipq9574: include the GPLL0 as clock provider for mailbox
8b57686e7ad0 arm64: dts: qcom: ipq6018: include the GPLL0 as clock provider for mailbox
11d8f7a1bf44 arm64: dts: qcom: ipq8074: include the GPLL0 as clock provider for mailbox
9b0b036ea0de arm64: dts: qcom: ipq9574: populate the opp table based on the eFuse
f3636ba1edce arm64: dts: qcom: ipq5332: populate the opp table based on the eFuse
8831b26a6579 arm64: dts: qcom: sdm670: add specific cpufreq compatible
8ce87f299cdb arm64: dts: qcom: sm8150: extend the size of the PDC resource
b3cbe4ff9c30 arm64: dts: qcom: ipq5018: add QUP1 SPI controller
f330c2991aa0 arm64: dts: qcom: qrb4210-rb2: don't force usb peripheral mode
daa68cbafb06 arm64: dts: qcom: Enable tsens and thermal for sa8775p SoC
6232143457ae arm64: dts: qcom: sa8775p: Add RPMh sleep stats
973959c2edf1 arm64: dts: qcom: sc7280: Add ports subnodes in usb/dp qmpphy node
4c021a56b758 arm64: dts: qcom: sm6375-pdx225: Add USBPHY regulators
6fb033b4f60e arm64: dts: qcom: sm6375-pdx225: Enable ATH10K WiFi
fa14ce25949b arm64: dts: qcom: sm6375-pdx225: Enable MSS
e77ac5cceb8e arm64: dts: qcom: sm6375: Add UART1
dec2e7998de5 arm64: dts: qcom: ipq9574: Enable WPS buttons
d3619641203e arm64: dts: qcom: ipq9574: Add common RDP dtsi file
9faa71835343 arm64: dts: qcom: ipq5018: Enable USB
71275274da1f arm64: dts: qcom: ipq5018: Add USB related nodes
af8b25f21479 arm64: dts: qcom: sc7280: add TRNG node
00e1b06bb47a arm64: dts: qcom: sa8775p: add TRNG node
ac7c5d2655a7 arm64: dts: qcom: sm8450: add TRNG node
0087dcd6513a arm64: dts: qcom: sm8550: add TRNG node

git-subtree-dir: dts/upstream
git-subtree-split: b35b9bd1d4eed2acf8bc38ec5b1b6eef6261b4f0

1311 files changed:
Bindings/Makefile
Bindings/arm/calxeda/l2ecc.yaml
Bindings/arm/cpus.yaml
Bindings/arm/fsl.yaml
Bindings/arm/google.yaml [new file with mode: 0644]
Bindings/arm/hisilicon/controller/sysctrl.yaml
Bindings/arm/marvell/armada-7k-8k.yaml
Bindings/arm/mediatek.yaml
Bindings/arm/mediatek/mediatek,audsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,audsys.yaml [new file with mode: 0644]
Bindings/arm/mediatek/mediatek,ethsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,infracfg.yaml
Bindings/arm/mediatek/mediatek,mmsys.yaml
Bindings/arm/mediatek/mediatek,pericfg.yaml
Bindings/arm/msm/qcom,idle-state.txt [deleted file]
Bindings/arm/qcom,coresight-remote-etm.yaml [new file with mode: 0644]
Bindings/arm/qcom,coresight-tpdm.yaml
Bindings/arm/qcom-soc.yaml
Bindings/arm/qcom.yaml
Bindings/arm/rockchip.yaml
Bindings/arm/samsung/samsung-boards.yaml
Bindings/arm/sprd/sprd.yaml
Bindings/arm/stm32/stm32.yaml
Bindings/arm/sunxi.yaml
Bindings/arm/ti/k3.yaml
Bindings/arm/ti/omap.yaml
Bindings/ata/ceva,ahci-1v84.yaml
Bindings/auxdisplay/hit,hd44780.yaml
Bindings/cache/qcom,llcc.yaml
Bindings/cache/sifive,ccache0.yaml
Bindings/clock/baikal,bt1-ccu-pll.yaml
Bindings/clock/brcm,kona-ccu.txt [deleted file]
Bindings/clock/brcm,kona-ccu.yaml [new file with mode: 0644]
Bindings/clock/fsl,imx93-anatop.yaml [new file with mode: 0644]
Bindings/clock/google,gs101-clock.yaml [new file with mode: 0644]
Bindings/clock/hi3620-clock.txt [deleted file]
Bindings/clock/mediatek,apmixedsys.yaml
Bindings/clock/mediatek,ethsys.yaml [new file with mode: 0644]
Bindings/clock/mediatek,mt7988-ethwarp.yaml [new file with mode: 0644]
Bindings/clock/mediatek,mt7988-xfi-pll.yaml [new file with mode: 0644]
Bindings/clock/mediatek,mt8188-clock.yaml
Bindings/clock/mediatek,topckgen.yaml
Bindings/clock/qcom,a53pll.yaml
Bindings/clock/qcom,camcc-sm8250.yaml
Bindings/clock/qcom,gcc-ipq6018.yaml [new file with mode: 0644]
Bindings/clock/qcom,gcc-ipq8074.yaml
Bindings/clock/qcom,gcc-other.yaml
Bindings/clock/qcom,qdu1000-ecpricc.yaml [new file with mode: 0644]
Bindings/clock/qcom,rpmhcc.yaml
Bindings/clock/qcom,sc7180-camcc.yaml
Bindings/clock/qcom,sc7280-camcc.yaml
Bindings/clock/qcom,sdm845-camcc.yaml
Bindings/clock/qcom,sm8450-camcc.yaml
Bindings/clock/qcom,sm8450-gpucc.yaml
Bindings/clock/qcom,sm8550-tcsr.yaml
Bindings/clock/qcom,sm8650-dispcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm8650-gcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,x1e80100-gcc.yaml [new file with mode: 0644]
Bindings/clock/renesas,9series.yaml
Bindings/clock/silabs,si5351.txt [deleted file]
Bindings/clock/silabs,si5351.yaml [new file with mode: 0644]
Bindings/clock/sophgo,cv1800-clk.yaml [new file with mode: 0644]
Bindings/clock/st,stm32mp25-rcc.yaml [new file with mode: 0644]
Bindings/clock/xlnx,clocking-wizard.yaml
Bindings/clock/xlnx,versal-clk.yaml
Bindings/connector/usb-connector.yaml
Bindings/cpu/idle-states.yaml
Bindings/crypto/inside-secure,safexcel.yaml [new file with mode: 0644]
Bindings/crypto/inside-secure-safexcel.txt [deleted file]
Bindings/crypto/qcom,inline-crypto-engine.yaml
Bindings/crypto/qcom,prng.yaml
Bindings/crypto/qcom-qce.yaml
Bindings/display/bridge/lontium,lt8912b.yaml
Bindings/display/bridge/nxp,tda998x.yaml
Bindings/display/mediatek/mediatek,aal.yaml
Bindings/display/mediatek/mediatek,color.yaml
Bindings/display/mediatek/mediatek,dsi.yaml
Bindings/display/mediatek/mediatek,ethdr.yaml
Bindings/display/mediatek/mediatek,mdp-rdma.yaml [deleted file]
Bindings/display/mediatek/mediatek,merge.yaml
Bindings/display/mediatek/mediatek,ovl.yaml
Bindings/display/mediatek/mediatek,padding.yaml [new file with mode: 0644]
Bindings/display/mediatek/mediatek,split.yaml
Bindings/display/msm/dp-controller.yaml
Bindings/display/msm/dsi-controller-main.yaml
Bindings/display/msm/dsi-phy-7nm.yaml
Bindings/display/msm/mdss-common.yaml
Bindings/display/msm/qcom,qcm2290-mdss.yaml
Bindings/display/msm/qcom,sc7180-mdss.yaml
Bindings/display/msm/qcom,sc7280-mdss.yaml
Bindings/display/msm/qcom,sdm670-mdss.yaml [new file with mode: 0644]
Bindings/display/msm/qcom,sdm845-dpu.yaml
Bindings/display/msm/qcom,sm6115-mdss.yaml
Bindings/display/msm/qcom,sm6125-mdss.yaml
Bindings/display/msm/qcom,sm6350-mdss.yaml
Bindings/display/msm/qcom,sm6375-mdss.yaml
Bindings/display/msm/qcom,sm8150-mdss.yaml
Bindings/display/msm/qcom,sm8250-mdss.yaml
Bindings/display/msm/qcom,sm8450-mdss.yaml
Bindings/display/msm/qcom,sm8650-dpu.yaml [new file with mode: 0644]
Bindings/display/msm/qcom,sm8650-mdss.yaml [new file with mode: 0644]
Bindings/display/panel/fascontek,fs035vg158.yaml [new file with mode: 0644]
Bindings/display/panel/himax,hx8394.yaml
Bindings/display/panel/ilitek,ili9805.yaml [new file with mode: 0644]
Bindings/display/panel/ilitek,ili9881c.yaml
Bindings/display/panel/leadtek,ltk035c5444t.yaml
Bindings/display/panel/newvision,nv3051d.yaml
Bindings/display/panel/panel-simple-lvds-dual-ports.yaml
Bindings/display/panel/panel-simple.yaml
Bindings/display/panel/sitronix,st7701.yaml
Bindings/display/panel/synaptics,r63353.yaml [new file with mode: 0644]
Bindings/display/rockchip/inno_hdmi-rockchip.txt [deleted file]
Bindings/display/rockchip/rockchip,inno-hdmi.yaml [new file with mode: 0644]
Bindings/display/rockchip/rockchip-vop2.yaml
Bindings/display/samsung/samsung,exynos-mixer.yaml
Bindings/display/ti/ti,am65x-dss.yaml
Bindings/dma/dma-controller.yaml
Bindings/dma/dma-router.yaml
Bindings/dma/loongson,ls2x-apbdma.yaml [new file with mode: 0644]
Bindings/dma/nvidia,tegra210-adma.yaml
Bindings/dma/qcom,gpi.yaml
Bindings/dma/renesas,rz-dmac.yaml
Bindings/dma/sifive,fu540-c000-pdma.yaml
Bindings/dma/ti/k3-bcdma.yaml
Bindings/dma/ti/k3-pktdma.yaml
Bindings/dma/ti/k3-udma.yaml
Bindings/dts-coding-style.rst [new file with mode: 0644]
Bindings/eeprom/at24.yaml
Bindings/firmware/qcom,scm.yaml
Bindings/firmware/xilinx/xlnx,zynqmp-firmware.yaml
Bindings/fpga/altera-fpga2sdram-bridge.txt [deleted file]
Bindings/fpga/altera-freeze-bridge.txt [deleted file]
Bindings/fpga/altera-hps2fpga-bridge.txt [deleted file]
Bindings/fpga/altr,freeze-bridge-controller.yaml [new file with mode: 0644]
Bindings/fpga/altr,socfpga-fpga2sdram-bridge.yaml [new file with mode: 0644]
Bindings/fpga/altr,socfpga-hps2fpga-bridge.yaml [new file with mode: 0644]
Bindings/fpga/fpga-bridge.txt [deleted file]
Bindings/fpga/fpga-bridge.yaml [new file with mode: 0644]
Bindings/fpga/xlnx,pr-decoupler.yaml
Bindings/gnss/u-blox,neo-6m.yaml
Bindings/gpio/brcm,brcmstb-gpio.yaml
Bindings/gpio/nuvoton,sgpio.yaml [new file with mode: 0644]
Bindings/gpio/realtek,rtd-gpio.yaml [new file with mode: 0644]
Bindings/gpio/rockchip,gpio-bank.yaml
Bindings/gpio/snps,dw-apb-gpio.yaml
Bindings/gpio/xlnx,gpio-xilinx.yaml
Bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml
Bindings/gpu/arm,mali-midgard.yaml
Bindings/gpu/arm,mali-utgard.yaml
Bindings/gpu/brcm,bcm-v3d.yaml
Bindings/gpu/img,powervr.yaml [new file with mode: 0644]
Bindings/gpu/samsung-g2d.yaml
Bindings/gpu/samsung-rotator.yaml
Bindings/gpu/samsung-scaler.yaml
Bindings/hwinfo/samsung,exynos-chipid.yaml
Bindings/hwmon/gpio-fan.txt [deleted file]
Bindings/hwmon/gpio-fan.yaml [new file with mode: 0644]
Bindings/hwmon/iio-hwmon.yaml
Bindings/hwmon/lltc,ltc4286.yaml [new file with mode: 0644]
Bindings/hwmon/lm75.yaml
Bindings/i2c/i2c-exynos5.yaml
Bindings/i2c/samsung,s3c2410-i2c.yaml
Bindings/i2c/st,stm32-i2c.yaml
Bindings/iio/adc/adi,ad7091r5.yaml
Bindings/iio/adc/adi,ad7780.yaml
Bindings/iio/adc/maxim,max34408.yaml [new file with mode: 0644]
Bindings/iio/adc/qcom,spmi-iadc.yaml
Bindings/iio/adc/qcom,spmi-rradc.yaml
Bindings/iio/adc/qcom,spmi-vadc.yaml
Bindings/iio/adc/samsung,exynos-adc.yaml
Bindings/iio/adc/ti,palmas-gpadc.yaml
Bindings/iio/amplifiers/adi,hmc425a.yaml
Bindings/iio/chemical/aosong,ags02ma.yaml [new file with mode: 0644]
Bindings/iio/dac/adi,ad5791.yaml
Bindings/iio/dac/microchip,mcp4821.yaml [new file with mode: 0644]
Bindings/iio/humidity/ti,hdc3020.yaml [new file with mode: 0644]
Bindings/iio/imu/adi,adis16460.yaml
Bindings/iio/imu/adi,adis16475.yaml
Bindings/iio/imu/bosch,bmi323.yaml [new file with mode: 0644]
Bindings/iio/light/liteon,ltr390.yaml [new file with mode: 0644]
Bindings/iio/light/vishay,veml6075.yaml [new file with mode: 0644]
Bindings/iio/pressure/honeywell,hsc030pa.yaml [new file with mode: 0644]
Bindings/iio/pressure/honeywell,mprls0025pa.yaml
Bindings/iio/temperature/melexis,mlx90632.yaml
Bindings/iio/temperature/microchip,mcp9600.yaml [new file with mode: 0644]
Bindings/index.rst
Bindings/input/adafruit,seesaw-gamepad.yaml [new file with mode: 0644]
Bindings/input/elan,ekth6915.yaml
Bindings/input/gpio-keys.yaml
Bindings/input/gpio-mouse.txt [deleted file]
Bindings/input/gpio-mouse.yaml [new file with mode: 0644]
Bindings/input/iqs269a.yaml
Bindings/input/mediatek,pmic-keys.yaml
Bindings/input/microchip,cap11xx.yaml
Bindings/input/sprd,sc27xx-vibrator.yaml
Bindings/input/ti,drv2665.txt [deleted file]
Bindings/input/ti,drv2667.txt [deleted file]
Bindings/input/ti,drv266x.yaml [new file with mode: 0644]
Bindings/input/touchscreen/neonode,zforce.yaml [new file with mode: 0644]
Bindings/input/touchscreen/samsung,s6sy761.txt [deleted file]
Bindings/input/touchscreen/samsung,s6sy761.yaml [new file with mode: 0644]
Bindings/input/touchscreen/zforce_ts.txt [deleted file]
Bindings/interconnect/qcom,msm8998-bwmon.yaml
Bindings/interconnect/qcom,sm6115.yaml [new file with mode: 0644]
Bindings/interconnect/qcom,sm8650-rpmh.yaml [new file with mode: 0644]
Bindings/interconnect/qcom,x1e80100-rpmh.yaml [new file with mode: 0644]
Bindings/interrupt-controller/loongson,liointc.yaml
Bindings/interrupt-controller/qcom,mpm.yaml
Bindings/interrupt-controller/qcom,pdc.yaml
Bindings/interrupt-controller/renesas,rzg2l-irqc.yaml
Bindings/interrupt-controller/sifive,plic-1.0.0.yaml
Bindings/interrupt-controller/st,stih407-irq-syscfg.yaml
Bindings/iommu/apple,dart.yaml
Bindings/iommu/arm,smmu.yaml
Bindings/iommu/rockchip,iommu.yaml
Bindings/leds/allwinner,sun50i-a100-ledc.yaml [new file with mode: 0644]
Bindings/leds/awinic,aw200xx.yaml
Bindings/leds/backlight/mps,mp3309c.yaml
Bindings/leds/common.yaml
Bindings/leds/qcom,spmi-flash-led.yaml
Bindings/loongarch/cpus.yaml [new file with mode: 0644]
Bindings/loongarch/loongson.yaml [new file with mode: 0644]
Bindings/mailbox/qcom,apcs-kpss-global.yaml
Bindings/mailbox/qcom-ipcc.yaml
Bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
Bindings/media/cnm,wave521c.yaml [new file with mode: 0644]
Bindings/media/i2c/alliedvision,alvium-csi2.yaml [new file with mode: 0644]
Bindings/media/i2c/asahi-kasei,ak7375.yaml
Bindings/media/i2c/galaxycore,gc0308.yaml [new file with mode: 0644]
Bindings/media/i2c/galaxycore,gc2145.yaml [new file with mode: 0644]
Bindings/media/i2c/ov8856.yaml
Bindings/media/i2c/ovti,ov64a40.yaml [new file with mode: 0644]
Bindings/media/i2c/sony,imx335.yaml
Bindings/media/i2c/techwell,tw9900.yaml [new file with mode: 0644]
Bindings/media/i2c/thine,thp7312.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-fg.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-hdr.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-rdma.yaml
Bindings/media/mediatek,mdp3-rsz.yaml
Bindings/media/mediatek,mdp3-stitch.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-tcc.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-tdshp.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-wrot.yaml
Bindings/media/rockchip-isp1.yaml
Bindings/media/samsung,s5p-mfc.yaml
Bindings/media/st,stm32-dcmipp.yaml [new file with mode: 0644]
Bindings/media/starfive,jh7110-camss.yaml [new file with mode: 0644]
Bindings/mfd/ams,as3711.yaml [new file with mode: 0644]
Bindings/mfd/as3711.txt [deleted file]
Bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
Bindings/mfd/qcom,pm8008.yaml
Bindings/mfd/qcom,spmi-pmic.yaml
Bindings/mfd/qcom,tcsr.yaml
Bindings/mfd/samsung,exynos5433-lpass.yaml
Bindings/mfd/sprd,ums512-glbreg.yaml
Bindings/mfd/ti,am3359-tscadc.yaml
Bindings/misc/fsl,dpaa2-console.yaml
Bindings/mmc/arasan,sdhci.yaml
Bindings/mmc/arm,pl18x.yaml
Bindings/mmc/brcm,sdhci-brcmstb.yaml
Bindings/mmc/marvell,xenon-sdhci.yaml
Bindings/mmc/mtk-sd.yaml
Bindings/mmc/renesas,sdhi.yaml
Bindings/mmc/samsung,exynos-dw-mshc.yaml
Bindings/mmc/sdhci-msm.yaml
Bindings/mmc/sdhci-pxa.yaml
Bindings/mmc/snps,dwcmshc-sdhci.yaml
Bindings/mmc/synopsys-dw-mshc.yaml
Bindings/mtd/partitions/u-boot.yaml
Bindings/net/dsa/dsa.yaml
Bindings/net/dsa/marvell,mv88e6060.yaml [new file with mode: 0644]
Bindings/net/dsa/marvell,mv88e6xxx.yaml [new file with mode: 0644]
Bindings/net/dsa/marvell.txt [deleted file]
Bindings/net/dsa/microchip,ksz.yaml
Bindings/net/ethernet-switch.yaml
Bindings/net/lantiq,pef2256.yaml [new file with mode: 0644]
Bindings/net/marvell,aquantia.yaml [new file with mode: 0644]
Bindings/net/marvell,mvusb.yaml
Bindings/net/marvell,orion-mdio.yaml
Bindings/net/marvell,prestera.yaml
Bindings/net/pcs/mediatek,sgmiisys.yaml
Bindings/net/qcom,ipa.yaml
Bindings/net/renesas,etheravb.yaml
Bindings/net/renesas,ethertsn.yaml [new file with mode: 0644]
Bindings/net/sff,sfp.yaml
Bindings/net/xlnx,axi-ethernet.yaml
Bindings/nvmem/st,stm32-romem.yaml
Bindings/pci/brcm,stb-pcie.yaml
Bindings/pci/qcom,pcie.yaml
Bindings/pci/rcar-pci-host.yaml
Bindings/pci/rockchip-dw-pcie.yaml
Bindings/pci/ti,j721e-pci-ep.yaml
Bindings/pci/ti,j721e-pci-host.yaml
Bindings/pci/toshiba,visconti-pcie.yaml
Bindings/perf/fsl-imx-ddr.yaml
Bindings/phy/amlogic,g12a-mipi-dphy-analog.yaml
Bindings/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
Bindings/phy/mediatek,dsi-phy.yaml
Bindings/phy/mediatek,tphy.yaml
Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
Bindings/phy/qcom,snps-eusb2-phy.yaml
Bindings/pinctrl/pinctrl-single.yaml
Bindings/pinctrl/qcom,ipq5018-tlmm.yaml
Bindings/pinctrl/qcom,ipq5332-tlmm.yaml
Bindings/pinctrl/qcom,ipq6018-pinctrl.yaml
Bindings/pinctrl/qcom,ipq8074-pinctrl.yaml
Bindings/pinctrl/qcom,ipq9574-tlmm.yaml
Bindings/pinctrl/qcom,lpass-lpi-common.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,mdm9607-tlmm.yaml
Bindings/pinctrl/qcom,mdm9615-pinctrl.yaml
Bindings/pinctrl/qcom,msm8226-pinctrl.yaml
Bindings/pinctrl/qcom,msm8660-pinctrl.yaml
Bindings/pinctrl/qcom,msm8909-tlmm.yaml
Bindings/pinctrl/qcom,msm8916-pinctrl.yaml
Bindings/pinctrl/qcom,msm8953-pinctrl.yaml
Bindings/pinctrl/qcom,msm8960-pinctrl.yaml
Bindings/pinctrl/qcom,msm8974-pinctrl.yaml
Bindings/pinctrl/qcom,msm8976-pinctrl.yaml
Bindings/pinctrl/qcom,msm8994-pinctrl.yaml
Bindings/pinctrl/qcom,msm8996-pinctrl.yaml
Bindings/pinctrl/qcom,msm8998-pinctrl.yaml
Bindings/pinctrl/qcom,pmic-mpp.yaml
Bindings/pinctrl/qcom,qcm2290-tlmm.yaml
Bindings/pinctrl/qcom,qcs404-pinctrl.yaml
Bindings/pinctrl/qcom,qdu1000-tlmm.yaml
Bindings/pinctrl/qcom,sa8775p-tlmm.yaml
Bindings/pinctrl/qcom,sc7180-pinctrl.yaml
Bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sc7280-pinctrl.yaml
Bindings/pinctrl/qcom,sc8180x-tlmm.yaml
Bindings/pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sc8280xp-tlmm.yaml
Bindings/pinctrl/qcom,sdm630-pinctrl.yaml
Bindings/pinctrl/qcom,sdm670-tlmm.yaml
Bindings/pinctrl/qcom,sdm845-pinctrl.yaml
Bindings/pinctrl/qcom,sdx55-pinctrl.yaml
Bindings/pinctrl/qcom,sdx65-tlmm.yaml
Bindings/pinctrl/qcom,sdx75-tlmm.yaml
Bindings/pinctrl/qcom,sm4450-tlmm.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sm6115-tlmm.yaml
Bindings/pinctrl/qcom,sm6125-tlmm.yaml
Bindings/pinctrl/qcom,sm6350-tlmm.yaml
Bindings/pinctrl/qcom,sm6375-tlmm.yaml
Bindings/pinctrl/qcom,sm7150-tlmm.yaml
Bindings/pinctrl/qcom,sm8150-pinctrl.yaml
Bindings/pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sm8250-pinctrl.yaml
Bindings/pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sm8350-tlmm.yaml
Bindings/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sm8450-tlmm.yaml
Bindings/pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml
Bindings/pinctrl/qcom,sm8550-tlmm.yaml
Bindings/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,sm8650-tlmm.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,x1e80100-tlmm.yaml [new file with mode: 0644]
Bindings/pinctrl/renesas,rza2-pinctrl.yaml
Bindings/pinctrl/renesas,rzg2l-pinctrl.yaml
Bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
Bindings/pinctrl/samsung,pinctrl.yaml
Bindings/pinctrl/xlnx,zynq-pinctrl.yaml
Bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml
Bindings/power/fsl,scu-pd.yaml
Bindings/power/qcom,rpmpd.yaml
Bindings/power/reset/nvmem-reboot-mode.yaml
Bindings/power/reset/qcom,pon.yaml
Bindings/power/reset/syscon-reboot-mode.yaml
Bindings/power/reset/xlnx,zynqmp-power.yaml
Bindings/power/supply/bq24190.yaml
Bindings/power/supply/richtek,rt9455.yaml
Bindings/power/wakeup-source.txt
Bindings/pwm/mediatek,pwm-disp.yaml
Bindings/pwm/pwm-omap-dmtimer.txt [deleted file]
Bindings/pwm/pwm-samsung.yaml
Bindings/pwm/ti,omap-dmtimer-pwm.yaml [new file with mode: 0644]
Bindings/regulator/fixed-regulator.yaml
Bindings/regulator/mps,mp5416.yaml
Bindings/regulator/mps,mpq7920.yaml
Bindings/regulator/qcom,rpmh-regulator.yaml
Bindings/regulator/qcom,smd-rpm-regulator.yaml
Bindings/regulator/qcom,spmi-regulator.yaml
Bindings/regulator/qcom,usb-vbus-regulator.yaml
Bindings/regulator/regulator.yaml
Bindings/remoteproc/fsl,imx-rproc.yaml
Bindings/remoteproc/qcom,sc7180-pas.yaml
Bindings/reset/amlogic,meson-reset.yaml
Bindings/reset/fsl,imx-src.yaml
Bindings/reset/hisilicon,hi3660-reset.yaml
Bindings/reset/qcom,aoss-reset.yaml
Bindings/reset/qcom,pdc-global.yaml
Bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml
Bindings/reset/xlnx,zynqmp-reset.yaml
Bindings/riscv/cpus.yaml
Bindings/riscv/extensions.yaml
Bindings/riscv/sophgo.yaml
Bindings/rng/starfive,jh7110-trng.yaml
Bindings/rtc/adi,max31335.yaml [new file with mode: 0644]
Bindings/rtc/epson,rx8900.yaml
Bindings/rtc/nuvoton,ma35d1-rtc.yaml [new file with mode: 0644]
Bindings/rtc/qcom-pm8xxx-rtc.yaml
Bindings/rtc/s3c-rtc.yaml
Bindings/security/tpm/google,cr50.txt [deleted file]
Bindings/security/tpm/ibmvtpm.txt [deleted file]
Bindings/security/tpm/st33zp24-i2c.txt [deleted file]
Bindings/security/tpm/st33zp24-spi.txt [deleted file]
Bindings/security/tpm/tpm-i2c.txt [deleted file]
Bindings/security/tpm/tpm_tis_mmio.txt [deleted file]
Bindings/security/tpm/tpm_tis_spi.txt [deleted file]
Bindings/serial/arm,dcc.yaml [new file with mode: 0644]
Bindings/serial/fsl,s32-linflexuart.yaml
Bindings/serial/fsl-imx-uart.yaml
Bindings/serial/qcom,msm-uartdm.yaml
Bindings/serial/renesas,sci.yaml
Bindings/serial/samsung_uart.yaml
Bindings/serial/snps-dw-apb-uart.yaml
Bindings/serial/sprd-uart.yaml
Bindings/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml
Bindings/soc/mediatek/mediatek,pwrap.yaml
Bindings/soc/mediatek/mtk-svs.yaml
Bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
Bindings/soc/qcom/qcom,aoss-qmp.yaml
Bindings/soc/qcom/qcom,pmic-glink.yaml
Bindings/soc/qcom/qcom-stats.yaml
Bindings/soc/rockchip/grf.yaml
Bindings/soc/samsung/exynos-pmu.yaml
Bindings/soc/samsung/exynos-usi.yaml
Bindings/soc/samsung/samsung,exynos-sysreg.yaml
Bindings/soc/xilinx/xilinx.yaml [moved from Bindings/arm/xilinx.yaml with 95% similarity]
Bindings/sound/adi,max98363.yaml
Bindings/sound/allwinner,sun4i-a10-spdif.yaml
Bindings/sound/audio-graph-port.yaml
Bindings/sound/es8328.txt [deleted file]
Bindings/sound/everest,es8328.yaml [new file with mode: 0644]
Bindings/sound/fsl,mqs.txt [deleted file]
Bindings/sound/fsl,mqs.yaml [new file with mode: 0644]
Bindings/sound/fsl,xcvr.yaml
Bindings/sound/google,sc7280-herobrine.yaml
Bindings/sound/mediatek,mt2701-audio.yaml [new file with mode: 0644]
Bindings/sound/mediatek,mt8188-mt6359.yaml
Bindings/sound/mt2701-afe-pcm.txt [deleted file]
Bindings/sound/nuvoton,nau8821.yaml
Bindings/sound/nvidia,tegra-audio-max9808x.yaml
Bindings/sound/qcom,lpass-rx-macro.yaml
Bindings/sound/qcom,lpass-tx-macro.yaml
Bindings/sound/qcom,lpass-va-macro.yaml
Bindings/sound/qcom,lpass-wsa-macro.yaml
Bindings/sound/qcom,sm8250.yaml
Bindings/sound/qcom,wcd934x.yaml
Bindings/sound/qcom,wcd938x-sdw.yaml
Bindings/sound/qcom,wcd938x.yaml
Bindings/sound/qcom,wsa883x.yaml
Bindings/sound/qcom,wsa8840.yaml
Bindings/sound/renesas,rsnd.yaml
Bindings/sound/renesas,rz-ssi.yaml
Bindings/sound/samsung-i2s.yaml
Bindings/sound/sound-card-common.yaml
Bindings/sound/tas2562.yaml
Bindings/sound/ti,tas2781.yaml
Bindings/sound/ti,tlv320aic32x4.yaml
Bindings/spi/adi,axi-spi-engine.txt [deleted file]
Bindings/spi/adi,axi-spi-engine.yaml [new file with mode: 0644]
Bindings/spi/renesas,rspi.yaml
Bindings/spi/snps,dw-apb-ssi.yaml
Bindings/spi/st,stm32-spi.yaml
Bindings/thermal/allwinner,sun8i-a83t-ths.yaml
Bindings/thermal/loongson,ls2k-thermal.yaml
Bindings/thermal/mediatek,thermal.yaml [new file with mode: 0644]
Bindings/thermal/mediatek-thermal.txt [deleted file]
Bindings/thermal/qcom-spmi-adc-tm-hc.yaml
Bindings/thermal/qcom-spmi-adc-tm5.yaml
Bindings/thermal/qcom-tsens.yaml
Bindings/thermal/thermal-zones.yaml
Bindings/timer/sifive,clint.yaml
Bindings/timer/thead,c900-aclint-mtimer.yaml
Bindings/tpm/google,cr50.yaml [new file with mode: 0644]
Bindings/tpm/ibm,vtpm.yaml [new file with mode: 0644]
Bindings/tpm/microsoft,ftpm.yaml [new file with mode: 0644]
Bindings/tpm/tcg,tpm-tis-i2c.yaml [new file with mode: 0644]
Bindings/tpm/tcg,tpm-tis-mmio.yaml [new file with mode: 0644]
Bindings/tpm/tcg,tpm_tis-spi.yaml [new file with mode: 0644]
Bindings/tpm/tpm-common.yaml [new file with mode: 0644]
Bindings/trivial-devices.yaml
Bindings/ufs/qcom,ufs.yaml
Bindings/ufs/samsung,exynos-ufs.yaml
Bindings/ufs/ufs-common.yaml
Bindings/usb/dwc3-xilinx.yaml
Bindings/usb/generic-xhci.yaml
Bindings/usb/genesys,gl850g.yaml
Bindings/usb/mediatek,mtk-xhci.yaml
Bindings/usb/microchip,usb5744.yaml
Bindings/usb/nxp,ptn5110.yaml
Bindings/usb/qcom,dwc3.yaml
Bindings/usb/qcom,wcd939x-usbss.yaml [new file with mode: 0644]
Bindings/usb/renesas,usbhs.yaml
Bindings/usb/snps,dwc3.yaml
Bindings/usb/ti,tps6598x.yaml
Bindings/usb/usb-xhci.yaml
Bindings/usb/xlnx,usb2.yaml
Bindings/vendor-prefixes.yaml
Bindings/w1/amd,axi-1wire-host.yaml [new file with mode: 0644]
Bindings/watchdog/allwinner,sun4i-a10-wdt.yaml
Bindings/watchdog/alphascale,asm9260-wdt.yaml
Bindings/watchdog/apple,wdt.yaml
Bindings/watchdog/arm-smc-wdt.yaml
Bindings/watchdog/brcm,bcm7038-wdt.yaml
Bindings/watchdog/cnxt,cx92755-wdt.yaml
Bindings/watchdog/dlg,da9062-watchdog.yaml
Bindings/watchdog/intel,keembay-wdt.yaml
Bindings/watchdog/maxim,max63xx.yaml
Bindings/watchdog/mediatek,mtk-wdt.yaml
Bindings/watchdog/nxp,pnx4008-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/pnx4008-wdt.txt [deleted file]
Bindings/watchdog/qca,ar7130-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/qca-ar7130-wdt.txt [deleted file]
Bindings/watchdog/qcom,pm8916-wdt.yaml
Bindings/watchdog/qcom-wdt.yaml
Bindings/watchdog/realtek,rtd119x.txt [deleted file]
Bindings/watchdog/realtek,rtd1295-watchdog.yaml [new file with mode: 0644]
Bindings/watchdog/samsung-wdt.yaml
Bindings/watchdog/snps,dw-wdt.yaml
Bindings/watchdog/technologic,ts7200-wdt.yaml [new file with mode: 0644]
include/dt-bindings/arm/qcom,ids.h
include/dt-bindings/clock/g12a-clkc.h
include/dt-bindings/clock/google,gs101.h [new file with mode: 0644]
include/dt-bindings/clock/mediatek,mt7988-clk.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,gcc-msm8939.h
include/dt-bindings/clock/qcom,qdu1000-ecpricc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sc8280xp-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-dispcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-gcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-tcsr.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,videocc-sm8150.h
include/dt-bindings/clock/qcom,x1e80100-gcc.h [new file with mode: 0644]
include/dt-bindings/clock/sophgo,cv1800.h [new file with mode: 0644]
include/dt-bindings/clock/st,stm32mp25-rcc.h [new file with mode: 0644]
include/dt-bindings/dma/fsl-edma.h [new file with mode: 0644]
include/dt-bindings/iio/qcom,spmi-adc7-pm7325.h [new file with mode: 0644]
include/dt-bindings/iio/qcom,spmi-adc7-smb139x.h [new file with mode: 0644]
include/dt-bindings/iio/qcom,spmi-vadc.h
include/dt-bindings/interconnect/qcom,sm6115.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,sm8650-rpmh.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h [new file with mode: 0644]
include/dt-bindings/power/meson-g12a-power.h
include/dt-bindings/reset/amlogic,c3-reset.h [new file with mode: 0644]
include/dt-bindings/reset/mediatek,mt7988-resets.h [new file with mode: 0644]
include/dt-bindings/reset/mt8188-resets.h
include/dt-bindings/reset/qcom,sm8650-gpucc.h [new file with mode: 0644]
include/dt-bindings/reset/st,stm32mp25-rcc.h [new file with mode: 0644]
include/dt-bindings/soc/rockchip,vop2.h
src/arm/amazon/alpine.dtsi
src/arm/aspeed/aspeed-bmc-facebook-bletchley.dts
src/arm/aspeed/aspeed-bmc-facebook-wedge400.dts
src/arm/aspeed/aspeed-bmc-opp-tacoma.dts
src/arm/aspeed/aspeed-g4.dtsi
src/arm/aspeed/aspeed-g5.dtsi
src/arm/aspeed/aspeed-g6.dtsi
src/arm/aspeed/ast2600-facebook-netbmc-common.dtsi
src/arm/broadcom/bcm-cygnus.dtsi
src/arm/broadcom/bcm-hr2.dtsi
src/arm/broadcom/bcm-nsp.dtsi
src/arm/broadcom/bcm2711-rpi.dtsi
src/arm/broadcom/bcm2711.dtsi
src/arm/broadcom/bcm63138.dtsi
src/arm/intel/ixp/intel-ixp42x-gateway-7001.dts
src/arm/intel/ixp/intel-ixp42x-goramo-multilink.dts
src/arm/intel/ixp/intel-ixp42x-usrobotics-usr8200.dts
src/arm/intel/socfpga/socfpga.dtsi
src/arm/intel/socfpga/socfpga_arria10.dtsi
src/arm/intel/socfpga/socfpga_arria10_socdk_qspi.dts
src/arm/intel/socfpga/socfpga_arria5_socdk.dts
src/arm/intel/socfpga/socfpga_cyclone5_socdk.dts
src/arm/intel/socfpga/socfpga_cyclone5_sockit.dts
src/arm/intel/socfpga/socfpga_cyclone5_sodia.dts
src/arm/intel/socfpga/socfpga_cyclone5_vining_fpga.dts
src/arm/marvell/armada-370-rd.dts
src/arm/marvell/armada-370-seagate-nas-2bay.dts
src/arm/marvell/armada-370-seagate-nas-4bay.dts
src/arm/marvell/armada-370-synology-ds213j.dts
src/arm/marvell/armada-381-netgear-gs110emx.dts
src/arm/marvell/armada-385-clearfog-gtr-l8.dts
src/arm/marvell/armada-385-clearfog-gtr-s4.dts
src/arm/marvell/armada-385-linksys.dtsi
src/arm/marvell/armada-385-synology-ds116.dts
src/arm/marvell/armada-385-turris-omnia.dts
src/arm/marvell/armada-388-clearfog.dts
src/arm/marvell/armada-388-gp.dts
src/arm/marvell/armada-xp-linksys-mamba.dts
src/arm/marvell/kirkwood-dnskw.dtsi
src/arm/marvell/kirkwood-l-50.dts
src/arm/marvell/kirkwood-linkstation-6282.dtsi
src/arm/marvell/kirkwood-linkstation-lswxl.dts
src/arm/marvell/kirkwood-lsxl.dtsi
src/arm/marvell/kirkwood-ns2max.dts
src/arm/marvell/kirkwood-ns2mini.dts
src/arm/marvell/kirkwood-synology.dtsi
src/arm/marvell/mvebu-linkstation-fan.dtsi
src/arm/microchip/at91-sam9x60_curiosity.dts
src/arm/microchip/at91-sam9x60ek.dts
src/arm/microchip/at91-sama5d27_som1_ek.dts
src/arm/microchip/at91-sama5d27_wlsom1_ek.dts
src/arm/nuvoton/nuvoton-wpcm450.dtsi
src/arm/nvidia/tegra20-colibri.dtsi
src/arm/nvidia/tegra30-apalis-v1.1.dtsi
src/arm/nvidia/tegra30-apalis.dtsi
src/arm/nvidia/tegra30-colibri.dtsi
src/arm/nxp/imx/imx1-ads.dts
src/arm/nxp/imx/imx1-apf9328.dts
src/arm/nxp/imx/imx1.dtsi
src/arm/nxp/imx/imx25-eukrea-cpuimx25.dtsi
src/arm/nxp/imx/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts
src/arm/nxp/imx/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts
src/arm/nxp/imx/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts
src/arm/nxp/imx/imx25-pdk.dts
src/arm/nxp/imx/imx25.dtsi
src/arm/nxp/imx/imx27-apf27dev.dts
src/arm/nxp/imx/imx27-eukrea-cpuimx27.dtsi
src/arm/nxp/imx/imx27-eukrea-mbimxsd27-baseboard.dts
src/arm/nxp/imx/imx27-pdk.dts
src/arm/nxp/imx/imx27-phytec-phycard-s-rdk.dts
src/arm/nxp/imx/imx27-phytec-phycore-rdk.dts
src/arm/nxp/imx/imx27-phytec-phycore-som.dtsi
src/arm/nxp/imx/imx27.dtsi
src/arm/nxp/imx/imx53-cx9020.dts
src/arm/nxp/imx/imx6dl-b105pv2.dts
src/arm/nxp/imx/imx6dl-b105v2.dts
src/arm/nxp/imx/imx6dl-b125pv2.dts
src/arm/nxp/imx/imx6dl-b125v2.dts
src/arm/nxp/imx/imx6dl-b155v2.dts
src/arm/nxp/imx/imx6q-apalis-ixora-v1.2.dts
src/arm/nxp/imx/imx6q-b850v3.dts
src/arm/nxp/imx/imx6q-bx50v3.dtsi
src/arm/nxp/imx/imx6q-var-mx6customboard.dts
src/arm/nxp/imx/imx6qdl-apalis.dtsi
src/arm/nxp/imx/imx6qdl-colibri.dtsi
src/arm/nxp/imx/imx6qdl-emcon-avari.dtsi
src/arm/nxp/imx/imx6qdl-emcon.dtsi
src/arm/nxp/imx/imx6qdl-mba6.dtsi
src/arm/nxp/imx/imx6qdl-phytec-pfla02.dtsi
src/arm/nxp/imx/imx6qdl-phytec-phycore-som.dtsi
src/arm/nxp/imx/imx6qdl-skov-cpu-revc.dtsi
src/arm/nxp/imx/imx6qdl.dtsi
src/arm/nxp/imx/imx6sx.dtsi
src/arm/nxp/imx/imx6ul.dtsi
src/arm/nxp/imx/imx6ull-phytec-tauri.dtsi
src/arm/nxp/imx/imx7-tqma7.dtsi
src/arm/nxp/imx/imx7d-colibri-emmc.dtsi
src/arm/nxp/imx/imx7d-flex-concentrator.dts
src/arm/nxp/imx/imx7d-meerkat96.dts
src/arm/nxp/imx/imx7d-pico-dwarf.dts
src/arm/nxp/imx/imx7d-pico.dtsi
src/arm/nxp/imx/imx7d-smegw01.dts
src/arm/nxp/imx/imx7d.dtsi
src/arm/nxp/imx/imx7s.dtsi
src/arm/nxp/imx/mba6ulx.dtsi
src/arm/nxp/lpc/lpc18xx.dtsi
src/arm/nxp/ls/ls1021a.dtsi
src/arm/nxp/mxs/imx23-sansa.dts
src/arm/nxp/mxs/imx23.dtsi
src/arm/nxp/mxs/imx28-lwe.dtsi
src/arm/nxp/mxs/imx28-tx28.dts
src/arm/nxp/mxs/imx28.dtsi
src/arm/nxp/vf/vf-colibri-eval-v3.dtsi
src/arm/nxp/vf/vf610-bk4.dts
src/arm/nxp/vf/vf610-zii-cfu1.dts
src/arm/nxp/vf/vf610-zii-dev-rev-b.dts
src/arm/nxp/vf/vf610-zii-scu4-aib.dts
src/arm/nxp/vf/vf610-zii-spb4.dts
src/arm/nxp/vf/vf610-zii-ssmb-dtu.dts
src/arm/nxp/vf/vf610-zii-ssmb-spu3.dts
src/arm/qcom/pm8018.dtsi [new file with mode: 0644]
src/arm/qcom/pm8058.dtsi [new file with mode: 0644]
src/arm/qcom/pm8226.dtsi [moved from src/arm/qcom/qcom-pm8226.dtsi with 99% similarity]
src/arm/qcom/pm8821.dtsi [new file with mode: 0644]
src/arm/qcom/pm8841.dtsi [moved from src/arm/qcom/qcom-pm8841.dtsi with 100% similarity]
src/arm/qcom/pm8921.dtsi [new file with mode: 0644]
src/arm/qcom/pm8941.dtsi [moved from src/arm/qcom/qcom-pm8941.dtsi with 99% similarity]
src/arm/qcom/pma8084.dtsi [moved from src/arm/qcom/qcom-pma8084.dtsi with 100% similarity]
src/arm/qcom/pmx55.dtsi [moved from src/arm/qcom/qcom-pmx55.dtsi with 100% similarity]
src/arm/qcom/pmx65.dtsi [moved from src/arm/qcom/qcom-pmx65.dtsi with 100% similarity]
src/arm/qcom/qcom-apq8026-asus-sparrow.dts
src/arm/qcom/qcom-apq8026-huawei-sturgeon.dts
src/arm/qcom/qcom-apq8026-lg-lenok.dts
src/arm/qcom/qcom-apq8026-samsung-matisse-wifi.dts
src/arm/qcom/qcom-apq8060-dragonboard.dts
src/arm/qcom/qcom-apq8064-asus-nexus7-flo.dts
src/arm/qcom/qcom-apq8064-cm-qs600.dts
src/arm/qcom/qcom-apq8064-ifc6410.dts
src/arm/qcom/qcom-apq8064-sony-xperia-lagan-yuga.dts
src/arm/qcom/qcom-apq8064.dtsi
src/arm/qcom/qcom-apq8074-dragonboard.dts
src/arm/qcom/qcom-apq8084-ifc6540.dts
src/arm/qcom/qcom-apq8084-mtp.dts
src/arm/qcom/qcom-ipq4019-ap.dk04.1.dtsi
src/arm/qcom/qcom-ipq4019.dtsi
src/arm/qcom/qcom-ipq8064.dtsi
src/arm/qcom/qcom-mdm9615-wp8548-mangoh-green.dts
src/arm/qcom/qcom-mdm9615-wp8548.dtsi
src/arm/qcom/qcom-mdm9615.dtsi
src/arm/qcom/qcom-msm8226-microsoft-common.dtsi [new file with mode: 0644]
src/arm/qcom/qcom-msm8226-microsoft-dempsey.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8226-microsoft-makepeace.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8226-microsoft-moneypenny.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8226.dtsi
src/arm/qcom/qcom-msm8660-surf.dts
src/arm/qcom/qcom-msm8660.dtsi
src/arm/qcom/qcom-msm8926-htc-memul.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8926-microsoft-superman-lte.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8926-microsoft-tesla.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8926-motorola-peregrine.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8960-cdp.dts
src/arm/qcom/qcom-msm8960-samsung-expressatt.dts
src/arm/qcom/qcom-msm8960.dtsi
src/arm/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
src/arm/qcom/qcom-msm8974-sony-xperia-rhine.dtsi
src/arm/qcom/qcom-msm8974.dtsi
src/arm/qcom/qcom-msm8974pro-fairphone-fp2.dts
src/arm/qcom/qcom-msm8974pro-oneplus-bacon.dts
src/arm/qcom/qcom-msm8974pro-samsung-klte.dts
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-castor.dts
src/arm/qcom/qcom-sdx55-mtp.dts
src/arm/qcom/qcom-sdx55-t55.dts
src/arm/qcom/qcom-sdx55-telit-fn980-tlb.dts
src/arm/qcom/qcom-sdx55.dtsi
src/arm/qcom/qcom-sdx65-mtp.dts
src/arm/qcom/qcom-sdx65.dtsi
src/arm/renesas/iwg20d-q7-dbcm-ca.dtsi
src/arm/renesas/r8a7740-armadillo800eva.dts
src/arm/renesas/r8a7740.dtsi
src/arm/renesas/r8a7745-iwg22d-sodimm-dbhd-ca.dts
src/arm/renesas/r8a7745-iwg22d-sodimm.dts
src/arm/renesas/r8a7779-marzen.dts
src/arm/renesas/r8a7790-lager.dts
src/arm/renesas/r8a7790-stout.dts
src/arm/renesas/r8a7791-koelsch.dts
src/arm/renesas/r8a7791-porter.dts
src/arm/renesas/r8a7792-blanche.dts
src/arm/renesas/r8a7792-wheat.dts
src/arm/renesas/r8a7793-gose.dts
src/arm/renesas/r8a7794-alt.dts
src/arm/renesas/r8a7794-silk.dts
src/arm/renesas/r9a06g032.dtsi
src/arm/rockchip/rk3036-kylin.dts
src/arm/rockchip/rk3036.dtsi
src/arm/rockchip/rk3066a.dtsi
src/arm/rockchip/rk3128-evb.dts
src/arm/rockchip/rk3128-xpi-3128.dts [new file with mode: 0644]
src/arm/rockchip/rk3128.dtsi
src/arm/rockchip/rk322x.dtsi
src/arm/rockchip/rk3288.dtsi
src/arm/rockchip/rk3xxx.dtsi
src/arm/rockchip/rv1108.dtsi
src/arm/rockchip/rv1109-sonoff-ihost.dts [new file with mode: 0644]
src/arm/rockchip/rv1109.dtsi [new file with mode: 0644]
src/arm/rockchip/rv1126-edgeble-neu2-io.dts
src/arm/rockchip/rv1126-pinctrl.dtsi
src/arm/rockchip/rv1126-sonoff-ihost.dts [new file with mode: 0644]
src/arm/rockchip/rv1126-sonoff-ihost.dtsi [new file with mode: 0644]
src/arm/rockchip/rv1126.dtsi
src/arm/samsung/exynos4.dtsi
src/arm/samsung/exynos4210-i9100.dts
src/arm/samsung/exynos4212-tab3.dtsi
src/arm/samsung/exynos4x12.dtsi
src/arm/samsung/s5pv210.dtsi
src/arm/st/ste-dbx5x0.dtsi
src/arm/st/ste-href-ab8500.dtsi
src/arm/st/ste-href-ab8505.dtsi [new file with mode: 0644]
src/arm/st/ste-href.dtsi
src/arm/st/ste-href520-tvk.dts
src/arm/st/ste-hrefprev60-stuib.dts
src/arm/st/ste-hrefprev60-tvk.dts
src/arm/st/ste-hrefprev60.dtsi
src/arm/st/ste-hrefv60plus-stuib.dts
src/arm/st/ste-hrefv60plus-tvk.dts
src/arm/st/ste-hrefv60plus.dtsi
src/arm/st/ste-nomadik-stn8815.dtsi
src/arm/st/ste-snowball.dts
src/arm/st/ste-ux500-samsung-codina-tmo.dts
src/arm/st/ste-ux500-samsung-codina.dts
src/arm/st/ste-ux500-samsung-gavini.dts
src/arm/st/ste-ux500-samsung-janice.dts
src/arm/st/ste-ux500-samsung-kyle.dts
src/arm/st/stm32429i-eval.dts
src/arm/st/stm32f469-disco.dts
src/arm/st/stm32f746.dtsi
src/arm/st/stm32mp135.dtsi
src/arm/st/stm32mp151.dtsi
src/arm/st/stm32mp151a-prtt1l.dtsi
src/arm/st/stm32mp157a-dk1-scmi.dts
src/arm/st/stm32mp157a-stinger96.dtsi
src/arm/st/stm32mp157c-dk2-scmi.dts
src/arm/st/stm32mp157c-dk2.dts
src/arm/st/stm32mp157c-ed1-scmi.dts
src/arm/st/stm32mp157c-emstamp-argon.dtsi
src/arm/st/stm32mp157c-ev1-scmi.dts
src/arm/st/stm32mp157c-ev1.dts
src/arm/st/stm32mp157c-osd32mp1-red.dts
src/arm/st/stm32mp157c-phycore-stm32mp15-som.dtsi
src/arm/st/stm32mp15xc-lxa-tac.dtsi
src/arm/st/stm32mp15xx-dhcom-drc02.dtsi
src/arm/st/stm32mp15xx-dhcom-pdk2.dtsi
src/arm/st/stm32mp15xx-dhcom-picoitx.dtsi
src/arm/st/stm32mp15xx-dhcor-avenger96.dtsi
src/arm/st/stm32mp15xx-dhcor-drc-compact.dtsi
src/arm/st/stm32mp15xx-dhcor-testbench.dtsi
src/arm/st/stm32mp15xx-dkx.dtsi
src/arm/ti/keystone/keystone-k2e-netcp.dtsi
src/arm/ti/keystone/keystone-k2g-evm.dts
src/arm/ti/keystone/keystone-k2g-netcp.dtsi
src/arm/ti/keystone/keystone-k2hk-evm.dts
src/arm/ti/keystone/keystone-k2hk-netcp.dtsi
src/arm/ti/keystone/keystone-k2l-netcp.dtsi
src/arm/ti/omap/am335x-moxa-uc-2100-common.dtsi
src/arm/ti/omap/am571x-idk.dts
src/arm/ti/omap/am5729-beagleboneai.dts
src/arm/ti/omap/am572x-idk-common.dtsi
src/arm/ti/omap/dra7-evm-common.dtsi
src/arm/ti/omap/dra71-evm.dts
src/arm/ti/omap/dra72-evm-common.dtsi
src/arm/ti/omap/dra76-evm.dts
src/arm/ti/omap/logicpd-torpedo-37xx-devkit.dts
src/arm/ti/omap/motorola-mapphone-common.dtsi
src/arm/ti/omap/motorola-mapphone-handset.dtsi [new file with mode: 0644]
src/arm/ti/omap/motorola-mapphone-mz607-mz617.dtsi [new file with mode: 0644]
src/arm/ti/omap/motorola-mapphone-xt8xx.dtsi [new file with mode: 0644]
src/arm/ti/omap/omap4-droid-bionic-xt875.dts
src/arm/ti/omap/omap4-droid4-xt894.dts
src/arm/ti/omap/omap4-epson-embt2ws.dts
src/arm/ti/omap/omap4-xyboard-mz609.dts [new file with mode: 0644]
src/arm/ti/omap/omap4-xyboard-mz617.dts [new file with mode: 0644]
src/arm64/allwinner/sun50i-h618-orangepi-zero2w.dts [new file with mode: 0644]
src/arm64/allwinner/sun50i-h618-transpeed-8k618-t.dts [new file with mode: 0644]
src/arm64/altera/socfpga_stratix10.dtsi
src/arm64/altera/socfpga_stratix10_socdk.dts
src/arm64/altera/socfpga_stratix10_socdk_nand.dts
src/arm64/altera/socfpga_stratix10_swvp.dts
src/arm64/amazon/alpine-v2.dtsi
src/arm64/amazon/alpine-v3.dtsi
src/arm64/amlogic/amlogic-c3.dtsi
src/arm64/amlogic/meson-axg-jethome-jethub-j110-rev-2.dts
src/arm64/amlogic/meson-axg-jethome-jethub-j110-rev-3.dts
src/arm64/amlogic/meson-axg-s400.dts
src/arm64/amlogic/meson-axg.dtsi
src/arm64/amlogic/meson-g12a-sei510.dts
src/arm64/amlogic/meson-g12a-x96-max.dts
src/arm64/amlogic/meson-g12b-bananapi-cm4.dtsi
src/arm64/amlogic/meson-g12b-bananapi.dtsi
src/arm64/amlogic/meson-g12b-gtking.dts
src/arm64/amlogic/meson-g12b-ugoos-am6.dts
src/arm64/amlogic/meson-gx-p23x-q20x.dtsi
src/arm64/amlogic/meson-gxbb-kii-pro.dts
src/arm64/amlogic/meson-gxbb-p200.dts
src/arm64/amlogic/meson-gxbb-vega-s95.dtsi
src/arm64/amlogic/meson-gxbb-wetek-play2.dts
src/arm64/amlogic/meson-gxm-nexbox-a1.dts
src/arm64/amlogic/meson-gxm-rbox-pro.dts
src/arm64/amlogic/meson-s4-s805x2-aq222.dts
src/arm64/amlogic/meson-s4.dtsi
src/arm64/amlogic/meson-sm1-sei610.dts
src/arm64/arm/juno-base.dtsi
src/arm64/arm/juno-scmi.dtsi
src/arm64/broadcom/northstar2/ns2.dtsi
src/arm64/broadcom/stingray/stingray.dtsi
src/arm64/exynos/exynos5433.dtsi
src/arm64/exynos/exynos7.dtsi
src/arm64/exynos/exynos7885.dtsi
src/arm64/exynos/exynos850.dtsi
src/arm64/exynos/exynosautov9-sadk.dts
src/arm64/exynos/exynosautov9.dtsi
src/arm64/exynos/exynosautov920-pinctrl.dtsi [new file with mode: 0644]
src/arm64/exynos/exynosautov920-sadk.dts [new file with mode: 0644]
src/arm64/exynos/exynosautov920.dtsi [new file with mode: 0644]
src/arm64/exynos/google/gs101-oriole.dts [new file with mode: 0644]
src/arm64/exynos/google/gs101-pinctrl.dtsi [new file with mode: 0644]
src/arm64/exynos/google/gs101-pinctrl.h [new file with mode: 0644]
src/arm64/exynos/google/gs101.dtsi [new file with mode: 0644]
src/arm64/freescale/fsl-ls1012a.dtsi
src/arm64/freescale/fsl-ls1028a.dtsi
src/arm64/freescale/fsl-ls1043a.dtsi
src/arm64/freescale/fsl-ls1046a.dtsi
src/arm64/freescale/fsl-ls1088a.dtsi
src/arm64/freescale/fsl-ls208xa.dtsi
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_12_x_x.dtso [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_14_x_x.dtso [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_11_x.dtso [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_7_x.dtso [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_8_x.dtso [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a-tqmlx2160a.dtsi [new file with mode: 0644]
src/arm64/freescale/fsl-lx2160a.dtsi
src/arm64/freescale/imx8-apalis-ixora-v1.2.dtsi
src/arm64/freescale/imx8-ss-audio.dtsi
src/arm64/freescale/imx8dxl-ss-conn.dtsi
src/arm64/freescale/imx8dxl-ss-ddr.dtsi
src/arm64/freescale/imx8mm-beacon-som.dtsi
src/arm64/freescale/imx8mm-emcon-avari.dtsi
src/arm64/freescale/imx8mm-evk.dtsi
src/arm64/freescale/imx8mm-nitrogen-r2.dts
src/arm64/freescale/imx8mm-overdrive.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mm-phygate-tauri-l.dts
src/arm64/freescale/imx8mm-tqma8mqml-mba8mx.dts
src/arm64/freescale/imx8mm-venice-gw72xx.dtsi
src/arm64/freescale/imx8mm-venice-gw73xx.dtsi
src/arm64/freescale/imx8mm-venice-gw7902.dts
src/arm64/freescale/imx8mm-verdin-mallow.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mm-verdin-nonwifi-mallow.dts [new file with mode: 0644]
src/arm64/freescale/imx8mm-verdin-wifi-mallow.dts [new file with mode: 0644]
src/arm64/freescale/imx8mm.dtsi
src/arm64/freescale/imx8mn-beacon-som.dtsi
src/arm64/freescale/imx8mn-bsh-smm-s2-common.dtsi
src/arm64/freescale/imx8mn-bsh-smm-s2-display.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mn-dimonoff-gateway-evk.dts [new file with mode: 0644]
src/arm64/freescale/imx8mn-evk.dtsi
src/arm64/freescale/imx8mn-overdrive.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mn-rve-gateway.dts [new file with mode: 0644]
src/arm64/freescale/imx8mn-tqma8mqnl-mba8mx.dts
src/arm64/freescale/imx8mn-var-som-symphony.dts
src/arm64/freescale/imx8mn-var-som.dtsi
src/arm64/freescale/imx8mn.dtsi
src/arm64/freescale/imx8mp-beacon-kit.dts
src/arm64/freescale/imx8mp-data-modul-edm-sbc.dts
src/arm64/freescale/imx8mp-debix-model-a.dts
src/arm64/freescale/imx8mp-debix-som-a-bmb-08.dts
src/arm64/freescale/imx8mp-debix-som-a.dtsi
src/arm64/freescale/imx8mp-dhcom-som.dtsi
src/arm64/freescale/imx8mp-evk.dts
src/arm64/freescale/imx8mp-msc-sm2s-ep1.dts
src/arm64/freescale/imx8mp-skov-reva.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mp-skov-revb-hdmi.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-skov-revb-lt6.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
src/arm64/freescale/imx8mp-venice-gw71xx.dtsi
src/arm64/freescale/imx8mp-venice-gw72xx.dtsi
src/arm64/freescale/imx8mp-venice-gw73xx.dtsi
src/arm64/freescale/imx8mp-venice-gw74xx.dts
src/arm64/freescale/imx8mp-verdin-mallow.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mp-verdin-nonwifi-mallow.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-verdin-wifi-mallow.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-verdin.dtsi
src/arm64/freescale/imx8mp.dtsi
src/arm64/freescale/imx8mq-kontron-pitx-imx8m.dts
src/arm64/freescale/imx8mq-phanbell.dts
src/arm64/freescale/imx8mq-tqma8mq-mba8mx.dts
src/arm64/freescale/imx8qm-ss-dma.dtsi
src/arm64/freescale/imx8qxp-mek.dts
src/arm64/freescale/imx8qxp-ss-vpu.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qxp.dtsi
src/arm64/freescale/imx93-11x11-evk.dts
src/arm64/freescale/imx93-tqma9352-mba93xxca.dts [new file with mode: 0644]
src/arm64/freescale/imx93-tqma9352-mba93xxla.dts
src/arm64/freescale/imx93.dtsi
src/arm64/hisilicon/hikey970-pmic.dtsi
src/arm64/intel/socfpga_agilex.dtsi
src/arm64/intel/socfpga_agilex5.dtsi
src/arm64/intel/socfpga_agilex_n6000.dts
src/arm64/intel/socfpga_agilex_socdk.dts
src/arm64/intel/socfpga_n5x_socdk.dts
src/arm64/lg/lg1312.dtsi
src/arm64/lg/lg1313.dtsi
src/arm64/marvell/ac5x-rd-carrier-cn9131.dts [new file with mode: 0644]
src/arm64/marvell/ac5x-rd-carrier.dtsi [new file with mode: 0644]
src/arm64/marvell/armada-3720-espressobin-ultra.dts
src/arm64/marvell/armada-3720-espressobin.dtsi
src/arm64/marvell/armada-3720-gl-mv1000.dts
src/arm64/marvell/armada-3720-turris-mox.dts
src/arm64/marvell/armada-7040-mochabin.dts
src/arm64/marvell/armada-8040-clearfog-gt-8k.dts
src/arm64/marvell/armada-ap80x.dtsi
src/arm64/marvell/cn9130-crb.dtsi
src/arm64/marvell/cn9130-db-comexpress.dtsi [new file with mode: 0644]
src/arm64/marvell/cn9131-db-comexpress.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt6358.dtsi
src/arm64/mediatek/mt7622-bananapi-bpi-r64.dts
src/arm64/mediatek/mt7986a-bananapi-bpi-r3.dts
src/arm64/mediatek/mt8173-elm-hana.dtsi
src/arm64/mediatek/mt8173-elm.dtsi
src/arm64/mediatek/mt8173-evb.dts
src/arm64/mediatek/mt8173.dtsi
src/arm64/mediatek/mt8183-evb.dts
src/arm64/mediatek/mt8183-kukui-audio-da7219.dtsi
src/arm64/mediatek/mt8183-kukui-audio-ts3a227e.dtsi
src/arm64/mediatek/mt8183-kukui-jacuzzi-damu.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku1.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku6.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku7.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-jacuzzi-pico.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-jacuzzi-pico6.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-jacuzzi.dtsi
src/arm64/mediatek/mt8183-kukui-kakadu-sku22.dts
src/arm64/mediatek/mt8183-kukui-kakadu.dts
src/arm64/mediatek/mt8183-kukui-kakadu.dtsi
src/arm64/mediatek/mt8183-kukui-katsu-sku32.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-katsu-sku38.dts [new file with mode: 0644]
src/arm64/mediatek/mt8183-kukui-kodama.dtsi
src/arm64/mediatek/mt8183-kukui-krane.dtsi
src/arm64/mediatek/mt8183-kukui.dtsi
src/arm64/mediatek/mt8183-pumpkin.dts
src/arm64/mediatek/mt8183.dtsi
src/arm64/mediatek/mt8186.dtsi
src/arm64/mediatek/mt8188-evb.dts [new file with mode: 0644]
src/arm64/mediatek/mt8188.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt8192-asurada.dtsi
src/arm64/mediatek/mt8192.dtsi
src/arm64/mediatek/mt8195-cherry.dtsi
src/arm64/mediatek/mt8195-demo.dts
src/arm64/mediatek/mt8195.dtsi
src/arm64/mediatek/mt8395-genio-1200-evk.dts
src/arm64/nvidia/tegra234-p3737-0000+p3701-0000.dts
src/arm64/nvidia/tegra234.dtsi
src/arm64/qcom/ipq5018-rdp432-c2.dts
src/arm64/qcom/ipq5018.dtsi
src/arm64/qcom/ipq5332-rdp-common.dtsi
src/arm64/qcom/ipq5332-rdp441.dts
src/arm64/qcom/ipq5332-rdp442.dts
src/arm64/qcom/ipq5332-rdp474.dts
src/arm64/qcom/ipq5332.dtsi
src/arm64/qcom/ipq6018.dtsi
src/arm64/qcom/ipq8074.dtsi
src/arm64/qcom/ipq9574-rdp-common.dtsi [new file with mode: 0644]
src/arm64/qcom/ipq9574-rdp418.dts
src/arm64/qcom/ipq9574-rdp433.dts
src/arm64/qcom/ipq9574-rdp449.dts
src/arm64/qcom/ipq9574-rdp453.dts
src/arm64/qcom/ipq9574-rdp454.dts
src/arm64/qcom/ipq9574.dtsi
src/arm64/qcom/msm8916-acer-a1-724.dts
src/arm64/qcom/msm8916-alcatel-idol347.dts
src/arm64/qcom/msm8916-asus-z00l.dts
src/arm64/qcom/msm8916-longcheer-l8150.dts
src/arm64/qcom/msm8916-longcheer-l8910.dts
src/arm64/qcom/msm8916-modem-qdsp6.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8916-samsung-a2015-common.dtsi
src/arm64/qcom/msm8916-samsung-a3u-eur.dts
src/arm64/qcom/msm8916-samsung-e2015-common.dtsi
src/arm64/qcom/msm8916-samsung-grandmax.dts
src/arm64/qcom/msm8916-samsung-gt5-common.dtsi
src/arm64/qcom/msm8916-samsung-gt510.dts
src/arm64/qcom/msm8916-samsung-gt58.dts
src/arm64/qcom/msm8916-samsung-j5-common.dtsi
src/arm64/qcom/msm8916-samsung-j5.dts
src/arm64/qcom/msm8916-samsung-serranove.dts
src/arm64/qcom/msm8916-thwc-uf896.dts
src/arm64/qcom/msm8916-thwc-ufi001c.dts
src/arm64/qcom/msm8916-wingtech-wt88047.dts
src/arm64/qcom/msm8916-yiming-uz801v3.dts
src/arm64/qcom/msm8916.dtsi
src/arm64/qcom/msm8939-huawei-kiwi.dts [new file with mode: 0644]
src/arm64/qcom/msm8939-longcheer-l9100.dts
src/arm64/qcom/msm8939-samsung-a7.dts
src/arm64/qcom/msm8939.dtsi
src/arm64/qcom/msm8953-xiaomi-mido.dts
src/arm64/qcom/msm8953-xiaomi-tissot.dts
src/arm64/qcom/msm8953-xiaomi-vince.dts
src/arm64/qcom/msm8953.dtsi
src/arm64/qcom/msm8996.dtsi
src/arm64/qcom/msm8998.dtsi
src/arm64/qcom/pm7250b.dtsi
src/arm64/qcom/pm8550.dtsi
src/arm64/qcom/pm8550ve.dtsi
src/arm64/qcom/pm8916.dtsi
src/arm64/qcom/pmk8350.dtsi
src/arm64/qcom/qcm2290.dtsi
src/arm64/qcom/qcm6490-fairphone-fp5.dts
src/arm64/qcom/qcm6490-idp.dts [new file with mode: 0644]
src/arm64/qcom/qcs404.dtsi
src/arm64/qcom/qcs6490-rb3gen2.dts [new file with mode: 0644]
src/arm64/qcom/qdu1000.dtsi
src/arm64/qcom/qrb2210-rb1.dts
src/arm64/qcom/qrb4210-rb2.dts
src/arm64/qcom/qrb5165-rb5-vision-mezzanine.dts
src/arm64/qcom/qrb5165-rb5.dts
src/arm64/qcom/sa8775p-ride.dts
src/arm64/qcom/sa8775p.dtsi
src/arm64/qcom/sc7180-acer-aspire1.dts
src/arm64/qcom/sc7180-trogdor-pompom.dtsi
src/arm64/qcom/sc7180.dtsi
src/arm64/qcom/sc7280-chrome-common.dtsi
src/arm64/qcom/sc7280-herobrine-lte-sku.dtsi
src/arm64/qcom/sc7280-herobrine-wifi-sku.dtsi
src/arm64/qcom/sc7280-idp.dtsi
src/arm64/qcom/sc7280.dtsi
src/arm64/qcom/sc8180x-lenovo-flex-5g.dts
src/arm64/qcom/sc8180x-primus.dts
src/arm64/qcom/sc8180x.dtsi
src/arm64/qcom/sc8280xp-crd.dts
src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
src/arm64/qcom/sc8280xp.dtsi
src/arm64/qcom/sdm630.dtsi
src/arm64/qcom/sdm632-fairphone-fp3.dts
src/arm64/qcom/sdm670.dtsi
src/arm64/qcom/sdm845-db845c.dts
src/arm64/qcom/sdm845-oneplus-common.dtsi
src/arm64/qcom/sdm845-wcd9340.dtsi
src/arm64/qcom/sdm845-xiaomi-beryllium-common.dtsi
src/arm64/qcom/sdm845.dtsi
src/arm64/qcom/sdm850-lenovo-yoga-c630.dts
src/arm64/qcom/sdm850-samsung-w737.dts
src/arm64/qcom/sdx75-idp.dts
src/arm64/qcom/sdx75.dtsi
src/arm64/qcom/sm4450-qrd.dts
src/arm64/qcom/sm4450.dtsi
src/arm64/qcom/sm6115.dtsi
src/arm64/qcom/sm6125.dtsi
src/arm64/qcom/sm6350.dtsi
src/arm64/qcom/sm6375-sony-xperia-murray-pdx225.dts
src/arm64/qcom/sm6375.dtsi
src/arm64/qcom/sm8150-hdk.dts
src/arm64/qcom/sm8150.dtsi
src/arm64/qcom/sm8250-xiaomi-elish-common.dtsi
src/arm64/qcom/sm8250-xiaomi-pipa.dts [new file with mode: 0644]
src/arm64/qcom/sm8250.dtsi
src/arm64/qcom/sm8350.dtsi
src/arm64/qcom/sm8450-hdk.dts
src/arm64/qcom/sm8450.dtsi
src/arm64/qcom/sm8550-mtp.dts
src/arm64/qcom/sm8550-qrd.dts
src/arm64/qcom/sm8550.dtsi
src/arm64/qcom/sm8650-mtp.dts [new file with mode: 0644]
src/arm64/qcom/sm8650-qrd.dts [new file with mode: 0644]
src/arm64/qcom/sm8650.dtsi [new file with mode: 0644]
src/arm64/qcom/x1e80100-crd.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-qcp.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100.dtsi [new file with mode: 0644]
src/arm64/renesas/draak.dtsi
src/arm64/renesas/ebisu.dtsi
src/arm64/renesas/r8a77970-eagle.dts
src/arm64/renesas/r8a779g0-white-hawk-cpu.dtsi
src/arm64/renesas/r9a08g045.dtsi
src/arm64/renesas/r9a09g011.dtsi
src/arm64/renesas/rzg2l-smarc-som.dtsi
src/arm64/renesas/rzg2lc-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc.dtsi
src/arm64/renesas/ulcb-kf.dtsi
src/arm64/rockchip/px30-engicam-common.dtsi
src/arm64/rockchip/px30-evb.dts
src/arm64/rockchip/px30-ringneck-haikou.dts
src/arm64/rockchip/px30.dtsi
src/arm64/rockchip/rk3308-rock-pi-s.dts
src/arm64/rockchip/rk3308.dtsi
src/arm64/rockchip/rk3318-a95x-z2.dts
src/arm64/rockchip/rk3326-anbernic-rg351m.dts
src/arm64/rockchip/rk3326-anbernic-rg351m.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3326-anbernic-rg351v.dts [new file with mode: 0644]
src/arm64/rockchip/rk3328-a1.dts
src/arm64/rockchip/rk3328-evb.dts
src/arm64/rockchip/rk3328-nanopi-r2s.dts
src/arm64/rockchip/rk3328-orangepi-r1-plus-lts.dts
src/arm64/rockchip/rk3328-orangepi-r1-plus.dts
src/arm64/rockchip/rk3328-roc-cc.dts
src/arm64/rockchip/rk3328-rock-pi-e.dts
src/arm64/rockchip/rk3328-rock64.dts
src/arm64/rockchip/rk3328.dtsi
src/arm64/rockchip/rk3368-evb.dtsi
src/arm64/rockchip/rk3368-geekbox.dts
src/arm64/rockchip/rk3368-lion.dtsi
src/arm64/rockchip/rk3368-orion-r68-meta.dts
src/arm64/rockchip/rk3368-r88.dts
src/arm64/rockchip/rk3368.dtsi
src/arm64/rockchip/rk3399-eaidk-610.dts
src/arm64/rockchip/rk3399-evb.dts
src/arm64/rockchip/rk3399-ficus.dts
src/arm64/rockchip/rk3399-firefly.dts
src/arm64/rockchip/rk3399-gru-bob.dts
src/arm64/rockchip/rk3399-gru-scarlet.dtsi
src/arm64/rockchip/rk3399-hugsun-x99.dts
src/arm64/rockchip/rk3399-khadas-edge-captain.dts
src/arm64/rockchip/rk3399-khadas-edge-v.dts
src/arm64/rockchip/rk3399-kobol-helios64.dts
src/arm64/rockchip/rk3399-leez-p710.dts
src/arm64/rockchip/rk3399-nanopi4.dtsi
src/arm64/rockchip/rk3399-orangepi.dts
src/arm64/rockchip/rk3399-puma-haikou.dts
src/arm64/rockchip/rk3399-puma.dtsi
src/arm64/rockchip/rk3399-roc-pc.dtsi
src/arm64/rockchip/rk3399-rock-4c-plus.dts
src/arm64/rockchip/rk3399-rock-pi-4.dtsi
src/arm64/rockchip/rk3399-rockpro64.dtsi
src/arm64/rockchip/rk3399-sapphire.dtsi
src/arm64/rockchip/rk3399.dtsi
src/arm64/rockchip/rk3399pro-vmarc-som.dtsi
src/arm64/rockchip/rk3566-lubancat-1.dts
src/arm64/rockchip/rk3566-powkiddy-rgb30.dts
src/arm64/rockchip/rk3566-powkiddy-rk2023.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-powkiddy-rk2023.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3566-powkiddy-x55.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-quartz64-a.dts
src/arm64/rockchip/rk3566-radxa-cm3-io.dts
src/arm64/rockchip/rk3566-roc-pc.dts
src/arm64/rockchip/rk3566-soquartz-blade.dts
src/arm64/rockchip/rk3566-soquartz-cm4.dts
src/arm64/rockchip/rk3566-soquartz-model-a.dts
src/arm64/rockchip/rk3566-soquartz.dtsi
src/arm64/rockchip/rk3588-coolpi-cm5-evb.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-coolpi-cm5.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-edgeble-neu6a-io.dts
src/arm64/rockchip/rk3588-edgeble-neu6b-io.dts
src/arm64/rockchip/rk3588-evb1-v10.dts
src/arm64/rockchip/rk3588-jaguar.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-nanopc-t6.dts
src/arm64/rockchip/rk3588-orangepi-5-plus.dts
src/arm64/rockchip/rk3588-quartzpro64.dts
src/arm64/rockchip/rk3588-rock-5b.dts
src/arm64/rockchip/rk3588-turing-rk1.dtsi
src/arm64/rockchip/rk3588s-coolpi-4b.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588s-indiedroid-nova.dts
src/arm64/rockchip/rk3588s-khadas-edge2.dts
src/arm64/rockchip/rk3588s-orangepi-5.dts
src/arm64/rockchip/rk3588s-rock-5a.dts
src/arm64/rockchip/rk3588s.dtsi
src/arm64/sprd/ums512.dtsi
src/arm64/sprd/ums9620-2h10.dts [new file with mode: 0644]
src/arm64/sprd/ums9620.dtsi [new file with mode: 0644]
src/arm64/st/stm32mp251.dtsi
src/arm64/tesla/fsd.dtsi
src/arm64/ti/k3-am62-main.dtsi
src/arm64/ti/k3-am62-verdin-dahlia.dtsi
src/arm64/ti/k3-am62-verdin-dev.dtsi
src/arm64/ti/k3-am62-verdin-mallow.dtsi [new file with mode: 0644]
src/arm64/ti/k3-am62-verdin-yavia.dtsi
src/arm64/ti/k3-am62-verdin.dtsi
src/arm64/ti/k3-am625-beagleplay-csi2-ov5640.dtso [new file with mode: 0644]
src/arm64/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso [new file with mode: 0644]
src/arm64/ti/k3-am625-beagleplay.dts
src/arm64/ti/k3-am625-phyboard-lyra-rdk.dts
src/arm64/ti/k3-am625-verdin-nonwifi-mallow.dts [new file with mode: 0644]
src/arm64/ti/k3-am625-verdin-wifi-mallow.dts [new file with mode: 0644]
src/arm64/ti/k3-am62a-main.dtsi
src/arm64/ti/k3-am62a7-sk.dts
src/arm64/ti/k3-am62p-main.dtsi
src/arm64/ti/k3-am62p5-sk.dts
src/arm64/ti/k3-am62x-sk-common.dtsi
src/arm64/ti/k3-am62x-sk-csi2-imx219.dtso [new file with mode: 0644]
src/arm64/ti/k3-am62x-sk-csi2-ov5640.dtso [new file with mode: 0644]
src/arm64/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso [new file with mode: 0644]
src/arm64/ti/k3-am64-main.dtsi
src/arm64/ti/k3-am64-phycore-som.dtsi
src/arm64/ti/k3-am642-evm.dts
src/arm64/ti/k3-am642-phyboard-electra-rdk.dts
src/arm64/ti/k3-am642-sk.dts
src/arm64/ti/k3-am642-tqma64xxl-mbax4xxl.dts
src/arm64/ti/k3-am642-tqma64xxl.dtsi
src/arm64/ti/k3-am65-iot2050-common-pg1.dtsi
src/arm64/ti/k3-am65-iot2050-common-pg2.dtsi
src/arm64/ti/k3-am65-iot2050-common.dtsi
src/arm64/ti/k3-am65-main.dtsi
src/arm64/ti/k3-am65-mcu.dtsi
src/arm64/ti/k3-am65-wakeup.dtsi
src/arm64/ti/k3-am652.dtsi [new file with mode: 0644]
src/arm64/ti/k3-am6528-iot2050-basic-common.dtsi
src/arm64/ti/k3-am654-base-board.dts
src/arm64/ti/k3-am6548-iot2050-advanced-common.dtsi
src/arm64/ti/k3-am6548-iot2050-advanced-m2.dts
src/arm64/ti/k3-am68-sk-base-board.dts
src/arm64/ti/k3-am69-sk.dts
src/arm64/ti/k3-j7200-main.dtsi
src/arm64/ti/k3-j7200-mcu-wakeup.dtsi
src/arm64/ti/k3-j7200-som-p0.dtsi
src/arm64/ti/k3-j721e-evm-pcie0-ep.dtso [new file with mode: 0644]
src/arm64/ti/k3-j721e-main.dtsi
src/arm64/ti/k3-j721e-mcu-wakeup.dtsi
src/arm64/ti/k3-j721e-sk.dts
src/arm64/ti/k3-j721e-som-p0.dtsi
src/arm64/ti/k3-j721s2-evm-pcie1-ep.dtso [new file with mode: 0644]
src/arm64/ti/k3-j721s2-main.dtsi
src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j721s2-som-p0.dtsi
src/arm64/ti/k3-j784s4-evm.dts
src/arm64/ti/k3-j784s4-main.dtsi
src/arm64/ti/k3-j784s4-mcu-wakeup.dtsi
src/arm64/xilinx/zynqmp-sck-kv-g-revA.dtso
src/arm64/xilinx/zynqmp-sck-kv-g-revB.dtso
src/arm64/xilinx/zynqmp-sm-k26-revA.dts
src/arm64/xilinx/zynqmp-zc1751-xm015-dc1.dts
src/arm64/xilinx/zynqmp-zc1751-xm016-dc2.dts
src/arm64/xilinx/zynqmp-zc1751-xm017-dc3.dts
src/arm64/xilinx/zynqmp-zc1751-xm018-dc4.dts
src/arm64/xilinx/zynqmp-zc1751-xm019-dc5.dts
src/arm64/xilinx/zynqmp-zcu100-revC.dts
src/arm64/xilinx/zynqmp.dtsi
src/loongarch/loongson-2k0500-ref.dts [new file with mode: 0644]
src/loongarch/loongson-2k0500.dtsi [new file with mode: 0644]
src/loongarch/loongson-2k1000-ref.dts [new file with mode: 0644]
src/loongarch/loongson-2k1000.dtsi [new file with mode: 0644]
src/loongarch/loongson-2k2000-ref.dts [new file with mode: 0644]
src/loongarch/loongson-2k2000.dtsi [new file with mode: 0644]
src/powerpc/fsl/t1023si-post.dtsi
src/powerpc/fsl/t1040si-post.dtsi
src/riscv/microchip/mpfs-icicle-kit.dts
src/riscv/microchip/mpfs.dtsi
src/riscv/renesas/r9a07g043f.dtsi
src/riscv/sifive/hifive-unmatched-a00.dts
src/riscv/sophgo/cv1800b.dtsi
src/riscv/sophgo/cv1812h-huashan-pi.dts [new file with mode: 0644]
src/riscv/sophgo/cv1812h.dtsi [new file with mode: 0644]
src/riscv/sophgo/cv18xx.dtsi [new file with mode: 0644]
src/riscv/sophgo/sg2042.dtsi
src/riscv/starfive/jh7100-common.dtsi
src/riscv/starfive/jh7100.dtsi
src/riscv/starfive/jh7110.dtsi
src/riscv/thead/th1520-beaglev-ahead.dts
src/riscv/thead/th1520-lichee-module-4a.dtsi
src/riscv/thead/th1520.dtsi

index 3e886194b043bbb99cc32e5c4b314b483e0be665..129cf698fa8a66fd2be5111074319da545f4cc98 100644 (file)
@@ -28,7 +28,10 @@ $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
 find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
                -name 'processed-schema*' \)
 
-find_cmd = $(find_all_cmd) | grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))"
+find_cmd = $(find_all_cmd) | \
+               sed 's|^$(srctree)/||' | \
+               grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))" | \
+               sed 's|^|$(srctree)/|'
 CHK_DT_DOCS := $(shell $(find_cmd))
 
 quiet_cmd_yamllint = LINT    $(src)
index a9fe01238a885d584950cabd282b1dd7a0685640..76b65ea149b65e39e8dbcc234b4f7638af69460e 100644 (file)
@@ -16,7 +16,7 @@ maintainers:
 
 properties:
   compatible:
-    const: "calxeda,hb-sregs-l2-ecc"
+    const: calxeda,hb-sregs-l2-ecc
 
   reg:
     maxItems: 1
index ffd526363fda61677f6f4b0e6de87714a8c6330c..cc5a21b47e26a7fd09cd5a504f2e909fc396d3da 100644 (file)
@@ -198,6 +198,7 @@ properties:
       - qcom,kryo660
       - qcom,kryo685
       - qcom,kryo780
+      - qcom,oryon
       - qcom,scorpion
 
   enable-method:
index 32b195852a75c5551adb8eeee6e28669c86bb257..228dcc5c7d6f3ec31426c4a44e87af4253b378a8 100644 (file)
@@ -967,6 +967,7 @@ properties:
               - menlo,mx8menlo                       # Verdin iMX8M Mini Module on i.MX8MM Menlo board
               - toradex,verdin-imx8mm-nonwifi-dahlia # Verdin iMX8M Mini Module on Dahlia
               - toradex,verdin-imx8mm-nonwifi-dev    # Verdin iMX8M Mini Module on Verdin Development Board
+              - toradex,verdin-imx8mm-nonwifi-mallow # Verdin iMX8M Mini Module on Mallow
               - toradex,verdin-imx8mm-nonwifi-yavia  # Verdin iMX8M Mini Module on Yavia
           - const: toradex,verdin-imx8mm-nonwifi     # Verdin iMX8M Mini Module without Wi-Fi / BT
           - const: toradex,verdin-imx8mm             # Verdin iMX8M Mini Module
@@ -977,6 +978,7 @@ properties:
           - enum:
               - toradex,verdin-imx8mm-wifi-dahlia # Verdin iMX8M Mini Wi-Fi / BT Module on Dahlia
               - toradex,verdin-imx8mm-wifi-dev    # Verdin iMX8M Mini Wi-Fi / BT M. on Verdin Development B.
+              - toradex,verdin-imx8mm-wifi-mallow # Verdin iMX8M Mini Wi-Fi / BT Module on Mallow
               - toradex,verdin-imx8mm-wifi-yavia  # Verdin iMX8M Mini Wi-Fi / BT Module on Yavia
           - const: toradex,verdin-imx8mm-wifi     # Verdin iMX8M Mini Wi-Fi / BT Module
           - const: toradex,verdin-imx8mm          # Verdin iMX8M Mini Module
@@ -1022,7 +1024,10 @@ properties:
 
       - description: Variscite VAR-SOM-MX8MN based boards
         items:
-          - const: variscite,var-som-mx8mn-symphony
+          - enum:
+              - dimonoff,gateway-evk # i.MX8MN Dimonoff Gateway EVK Board
+              - rve,rve-gateway # i.MX8MN RVE Gateway Board
+              - variscite,var-som-mx8mn-symphony
           - const: variscite,var-som-mx8mn
           - const: fsl,imx8mn
 
@@ -1048,6 +1053,9 @@ properties:
               - gateworks,imx8mp-gw73xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw74xx   # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw7905-2x # i.MX8MP Gateworks Board
+              - skov,imx8mp-skov-revb-hdmi # SKOV i.MX8MP climate control without panel
+              - skov,imx8mp-skov-revb-lt6 # SKOV i.MX8MP climate control with 7” panel
+              - skov,imx8mp-skov-revb-mi1010ait-1cp1 # SKOV i.MX8MP climate control with 10.1" panel
               - toradex,verdin-imx8mp     # Verdin iMX8M Plus Modules
               - toradex,verdin-imx8mp-nonwifi  # Verdin iMX8M Plus Modules without Wi-Fi / BT
               - toradex,verdin-imx8mp-wifi  # Verdin iMX8M Plus Wi-Fi / BT Modules
@@ -1100,6 +1108,7 @@ properties:
           - enum:
               - toradex,verdin-imx8mp-nonwifi-dahlia # Verdin iMX8M Plus Module on Dahlia
               - toradex,verdin-imx8mp-nonwifi-dev    # Verdin iMX8M Plus Module on Verdin Development Board
+              - toradex,verdin-imx8mp-nonwifi-mallow # Verdin iMX8M Plus Module on Mallow
               - toradex,verdin-imx8mp-nonwifi-yavia  # Verdin iMX8M Plus Module on Yavia
           - const: toradex,verdin-imx8mp-nonwifi     # Verdin iMX8M Plus Module without Wi-Fi / BT
           - const: toradex,verdin-imx8mp             # Verdin iMX8M Plus Module
@@ -1110,6 +1119,7 @@ properties:
           - enum:
               - toradex,verdin-imx8mp-wifi-dahlia # Verdin iMX8M Plus Wi-Fi / BT Module on Dahlia
               - toradex,verdin-imx8mp-wifi-dev    # Verdin iMX8M Plus Wi-Fi / BT M. on Verdin Development B.
+              - toradex,verdin-imx8mp-wifi-mallow # Verdin iMX8M Plus Wi-Fi / BT Module on Mallow
               - toradex,verdin-imx8mp-wifi-yavia  # Verdin iMX8M Plus Wi-Fi / BT Module on Yavia
           - const: toradex,verdin-imx8mp-wifi     # Verdin iMX8M Plus Wi-Fi / BT Module
           - const: toradex,verdin-imx8mp          # Verdin iMX8M Plus Module
@@ -1476,6 +1486,16 @@ properties:
           - const: solidrun,lx2162a-som
           - const: fsl,lx2160a
 
+      - description:
+          TQ-Systems TQMLX2160A is a series of socketable SOM featuring
+          LX2160A system-on-chip variants. MBLX2160A mainboard can be used a
+          starterkit.
+        items:
+          - enum:
+              - tq,lx2160a-tqmlx2160a-mblx2160a
+          - const: tq,lx2160a-tqmlx2160a
+          - const: fsl,lx2160a
+
       - description: S32G2 based Boards
         items:
           - enum:
diff --git a/Bindings/arm/google.yaml b/Bindings/arm/google.yaml
new file mode 100644 (file)
index 0000000..e20b5c9
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/google.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Tensor platforms
+
+maintainers:
+  - Peter Griffin <peter.griffin@linaro.org>
+
+description: |
+  ARM platforms using SoCs designed by Google branded "Tensor" used in Pixel
+  devices.
+
+  Currently upstream this is devices using "gs101" SoC which is found in Pixel
+  6, Pixel 6 Pro and Pixel 6a.
+
+  Google have a few different names for the SoC:
+  - Marketing name ("Tensor")
+  - Codename ("Whitechapel")
+  - SoC ID ("gs101")
+  - Die ID ("S5P9845")
+
+  Likewise there are a couple of names for the actual device
+  - Marketing name ("Pixel 6")
+  - Codename ("Oriole")
+
+  Devicetrees should use the lowercased SoC ID and lowercased board codename,
+  e.g. gs101 and gs101-oriole.
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: Google Pixel 6 / Oriole
+        items:
+          - enum:
+              - google,gs101-oriole
+          - const: google,gs101
+
+  # Bootloader requires empty ect node to be present
+  ect:
+    type: object
+    additionalProperties: false
+
+required:
+  - ect
+
+additionalProperties: true
+
+...
index 5a53d433b6f089106de77306bd2e2052f5bab59d..7a221e1c09dfec4cc45fc8cb391a1a7395f9d996 100644 (file)
@@ -82,6 +82,23 @@ properties:
 
   ranges: true
 
+patternProperties:
+  '^clock@':
+    type: object
+    additionalProperties: false
+
+    properties:
+      compatible:
+        enum:
+          - hisilicon,hi3620-clock
+          - hisilicon,hi3620-mmc-clock
+
+      reg:
+        maxItems: 1
+
+      '#clock-cells':
+        const: 1
+
 required:
   - compatible
   - reg
index 52d78521e4124c73104e5995f836906f18bf87d2..16d2e132d3d1bf2a61bd46ee7db7673b9e0747fb 100644 (file)
@@ -60,4 +60,26 @@ properties:
           - const: marvell,armada-ap807-quad
           - const: marvell,armada-ap807
 
+      - description:
+          Alleycat5X (98DX35xx) Reference Design as COM Express Carrier plus
+          Armada CN9130 COM Express CPU module
+        items:
+          - const: marvell,cn9130-ac5x-carrier
+          - const: marvell,rd-ac5x-carrier
+          - const: marvell,cn9130-cpu-module
+          - const: marvell,cn9130
+          - const: marvell,armada-ap807-quad
+          - const: marvell,armada-ap807
+
+      - description:
+          Alleycat5X (98DX35xx) Reference Design as COM Express Carrier plus
+          Armada CN9131 COM Express CPU module
+        items:
+          - const: marvell,cn9131-ac5x-carrier
+          - const: marvell,rd-ac5x-carrier
+          - const: marvell,cn9131-cpu-module
+          - const: marvell,cn9131
+          - const: marvell,armada-ap807-quad
+          - const: marvell,armada-ap807
+
 additionalProperties: true
index a5999b3afc35058ede107075c1ce66778c1ced2d..6f2f64ae76fcf3067b2076e2586f64b29c8b17eb 100644 (file)
@@ -174,6 +174,10 @@ properties:
           - enum:
               - mediatek,mt8186-evb
           - const: mediatek,mt8186
+      - items:
+          - enum:
+              - mediatek,mt8188-evb
+          - const: mediatek,mt8188
       - items:
           - enum:
               - mediatek,mt8192-evb
@@ -235,6 +239,13 @@ properties:
         items:
           - const: google,kappa
           - const: mediatek,mt8183
+      - description: Google Katsu (ASUS Chromebook Detachable CZ1)
+        items:
+          - enum:
+              - google,katsu-sku32
+              - google,katsu-sku38
+          - const: google,katsu
+          - const: mediatek,mt8183
       - description: Google Kodama (Lenovo 10e Chromebook Tablet)
         items:
           - enum:
@@ -244,6 +255,20 @@ properties:
               - google,kodama-sku32
           - const: google,kodama
           - const: mediatek,mt8183
+      - description: Google Makomo (Lenovo 100e Chromebook 2nd Gen MTK 2)
+        items:
+          - enum:
+              - google,makomo-sku0
+              - google,makomo-sku1
+          - const: google,makomo
+          - const: mediatek,mt8183
+      - description: Google Pico (Acer Chromebook Spin 311)
+        items:
+          - enum:
+              - google,pico-sku1
+              - google,pico-sku2
+          - const: google,pico
+          - const: mediatek,mt8183
       - description: Google Willow (Acer Chromebook 311 C722/C722T)
         items:
           - enum:
diff --git a/Bindings/arm/mediatek/mediatek,audsys.txt b/Bindings/arm/mediatek/mediatek,audsys.txt
deleted file mode 100644 (file)
index 699776b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-MediaTek AUDSYS controller
-============================
-
-The MediaTek AUDSYS controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2701-audsys", "syscon"
-       - "mediatek,mt6765-audsys", "syscon"
-       - "mediatek,mt6779-audio", "syscon"
-       - "mediatek,mt7622-audsys", "syscon"
-       - "mediatek,mt7623-audsys", "mediatek,mt2701-audsys", "syscon"
-       - "mediatek,mt8167-audiosys", "syscon"
-       - "mediatek,mt8183-audiosys", "syscon"
-       - "mediatek,mt8192-audsys", "syscon"
-       - "mediatek,mt8516-audsys", "syscon"
-- #clock-cells: Must be 1
-
-The AUDSYS controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Required sub-nodes:
--------
-For common binding part and usage, refer to
-../sonud/mt2701-afe-pcm.txt.
-
-Example:
-
-       audsys: clock-controller@11220000 {
-               compatible = "mediatek,mt7622-audsys", "syscon";
-               reg = <0 0x11220000 0 0x2000>;
-               #clock-cells = <1>;
-
-               afe: audio-controller {
-                       ...
-               };
-       };
diff --git a/Bindings/arm/mediatek/mediatek,audsys.yaml b/Bindings/arm/mediatek/mediatek,audsys.yaml
new file mode 100644 (file)
index 0000000..45d4a66
--- /dev/null
@@ -0,0 +1,153 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/mediatek/mediatek,audsys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek AUDSYS controller
+
+maintainers:
+  - Eugen Hristev <eugen.hristev@collabora.com>
+
+description:
+  The MediaTek AUDSYS controller provides various clocks to the system.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - mediatek,mt2701-audsys
+              - mediatek,mt6765-audsys
+              - mediatek,mt6779-audsys
+              - mediatek,mt7622-audsys
+              - mediatek,mt8167-audsys
+              - mediatek,mt8173-audsys
+              - mediatek,mt8183-audsys
+              - mediatek,mt8186-audsys
+              - mediatek,mt8192-audsys
+              - mediatek,mt8516-audsys
+          - const: syscon
+      - items:
+          # Special case for mt7623 for backward compatibility
+          - const: mediatek,mt7623-audsys
+          - const: mediatek,mt2701-audsys
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  audio-controller:
+    $ref: /schemas/sound/mediatek,mt2701-audio.yaml#
+    type: object
+
+required:
+  - compatible
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/power/mt2701-power.h>
+    #include <dt-bindings/clock/mt2701-clk.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+        audsys: clock-controller@11220000 {
+            compatible = "mediatek,mt7622-audsys", "syscon";
+            reg = <0 0x11220000 0 0x2000>;
+            #clock-cells = <1>;
+
+            afe: audio-controller {
+                compatible = "mediatek,mt2701-audio";
+                interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
+                             <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
+                interrupt-names = "afe", "asys";
+                power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
+
+                clocks = <&infracfg CLK_INFRA_AUDIO>,
+                         <&topckgen CLK_TOP_AUD_MUX1_SEL>,
+                         <&topckgen CLK_TOP_AUD_MUX2_SEL>,
+                         <&topckgen CLK_TOP_AUD_48K_TIMING>,
+                         <&topckgen CLK_TOP_AUD_44K_TIMING>,
+                         <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
+                         <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
+                         <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
+                         <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
+                         <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
+                         <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
+                         <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
+                         <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
+                         <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
+                         <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
+                         <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
+                         <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
+                         <&audsys CLK_AUD_I2SO1>,
+                         <&audsys CLK_AUD_I2SO2>,
+                         <&audsys CLK_AUD_I2SO3>,
+                         <&audsys CLK_AUD_I2SO4>,
+                         <&audsys CLK_AUD_I2SIN1>,
+                         <&audsys CLK_AUD_I2SIN2>,
+                         <&audsys CLK_AUD_I2SIN3>,
+                         <&audsys CLK_AUD_I2SIN4>,
+                         <&audsys CLK_AUD_ASRCO1>,
+                         <&audsys CLK_AUD_ASRCO2>,
+                         <&audsys CLK_AUD_ASRCO3>,
+                         <&audsys CLK_AUD_ASRCO4>,
+                         <&audsys CLK_AUD_AFE>,
+                         <&audsys CLK_AUD_AFE_CONN>,
+                         <&audsys CLK_AUD_A1SYS>,
+                         <&audsys CLK_AUD_A2SYS>,
+                         <&audsys CLK_AUD_AFE_MRGIF>;
+
+                clock-names = "infra_sys_audio_clk",
+                              "top_audio_mux1_sel",
+                              "top_audio_mux2_sel",
+                              "top_audio_a1sys_hp",
+                              "top_audio_a2sys_hp",
+                              "i2s0_src_sel",
+                              "i2s1_src_sel",
+                              "i2s2_src_sel",
+                              "i2s3_src_sel",
+                              "i2s0_src_div",
+                              "i2s1_src_div",
+                              "i2s2_src_div",
+                              "i2s3_src_div",
+                              "i2s0_mclk_en",
+                              "i2s1_mclk_en",
+                              "i2s2_mclk_en",
+                              "i2s3_mclk_en",
+                              "i2so0_hop_ck",
+                              "i2so1_hop_ck",
+                              "i2so2_hop_ck",
+                              "i2so3_hop_ck",
+                              "i2si0_hop_ck",
+                              "i2si1_hop_ck",
+                              "i2si2_hop_ck",
+                              "i2si3_hop_ck",
+                              "asrc0_out_ck",
+                              "asrc1_out_ck",
+                              "asrc2_out_ck",
+                              "asrc3_out_ck",
+                              "audio_afe_pd",
+                              "audio_afe_conn_pd",
+                              "audio_a1sys_pd",
+                              "audio_a2sys_pd",
+                              "audio_mrgif_pd";
+
+                assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
+                                  <&topckgen CLK_TOP_AUD_MUX2_SEL>,
+                                  <&topckgen CLK_TOP_AUD_MUX1_DIV>,
+                                  <&topckgen CLK_TOP_AUD_MUX2_DIV>;
+                assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
+                                         <&topckgen CLK_TOP_AUD2PLL_90M>;
+                assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
+            };
+        };
+    };
diff --git a/Bindings/arm/mediatek/mediatek,ethsys.txt b/Bindings/arm/mediatek/mediatek,ethsys.txt
deleted file mode 100644 (file)
index eccd4b7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Mediatek ethsys controller
-============================
-
-The Mediatek ethsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
-       - "mediatek,mt2701-ethsys", "syscon"
-       - "mediatek,mt7622-ethsys", "syscon"
-       - "mediatek,mt7623-ethsys", "mediatek,mt2701-ethsys", "syscon"
-       - "mediatek,mt7629-ethsys", "syscon"
-       - "mediatek,mt7981-ethsys", "syscon"
-       - "mediatek,mt7986-ethsys", "syscon"
-- #clock-cells: Must be 1
-- #reset-cells: Must be 1
-
-The ethsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-ethsys: clock-controller@1b000000 {
-       compatible = "mediatek,mt2701-ethsys", "syscon";
-       reg = <0 0x1b000000 0 0x1000>;
-       #clock-cells = <1>;
-       #reset-cells = <1>;
-};
index ea98043c6ba3d33340a533b8dd622f32cf0e36b2..230b5188a88dbe5b0b042e14331989e234e56b2a 100644 (file)
@@ -30,6 +30,7 @@ properties:
               - mediatek,mt7629-infracfg
               - mediatek,mt7981-infracfg
               - mediatek,mt7986-infracfg
+              - mediatek,mt7988-infracfg
               - mediatek,mt8135-infracfg
               - mediatek,mt8167-infracfg
               - mediatek,mt8173-infracfg
index 536f5a5ebd24684ba82aac47c959a2f081224a0b..b3c6888c14573df1b35d81bdb802e36962bebe44 100644 (file)
@@ -32,6 +32,9 @@ properties:
               - mediatek,mt8183-mmsys
               - mediatek,mt8186-mmsys
               - mediatek,mt8188-vdosys0
+              - mediatek,mt8188-vdosys1
+              - mediatek,mt8188-vppsys0
+              - mediatek,mt8188-vppsys1
               - mediatek,mt8192-mmsys
               - mediatek,mt8195-vdosys1
               - mediatek,mt8195-vppsys0
index 26158d0d72f3bb8b087a99d6c7942490323d1b18..33c94c491828e22042e88b691d128d6baaf6583a 100644 (file)
@@ -28,6 +28,7 @@ properties:
               - mediatek,mt8173-pericfg
               - mediatek,mt8183-pericfg
               - mediatek,mt8186-pericfg
+              - mediatek,mt8188-pericfg
               - mediatek,mt8195-pericfg
               - mediatek,mt8516-pericfg
           - const: syscon
diff --git a/Bindings/arm/msm/qcom,idle-state.txt b/Bindings/arm/msm/qcom,idle-state.txt
deleted file mode 100644 (file)
index 606b4b1..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-QCOM Idle States for cpuidle driver
-
-ARM provides idle-state node to define the cpuidle states, as defined in [1].
-cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle
-states. Idle states have different enter/exit latency and residency values.
-The idle states supported by the QCOM SoC are defined as -
-
-    * Standby
-    * Retention
-    * Standalone Power Collapse (Standalone PC or SPC)
-    * Power Collapse (PC)
-
-Standby: Standby does a little more in addition to architectural clock gating.
-When the WFI instruction is executed the ARM core would gate its internal
-clocks. In addition to gating the clocks, QCOM cpus use this instruction as a
-trigger to execute the SPM state machine. The SPM state machine waits for the
-interrupt to trigger the core back in to active. This triggers the cache
-hierarchy to enter standby states, when all cpus are idle. An interrupt brings
-the SPM state machine out of its wait, the next step is to ensure that the
-cache hierarchy is also out of standby, and then the cpu is allowed to resume
-execution. This state is defined as a generic ARM WFI state by the ARM cpuidle
-driver and is not defined in the DT. The SPM state machine should be
-configured to execute this state by default and after executing every other
-state below.
-
-Retention: Retention is a low power state where the core is clock gated and
-the memory and the registers associated with the core are retained. The
-voltage may be reduced to the minimum value needed to keep the processor
-registers active. The SPM should be configured to execute the retention
-sequence and would wait for interrupt, before restoring the cpu to execution
-state. Retention may have a slightly higher latency than Standby.
-
-Standalone PC: A cpu can power down and warmboot if there is a sufficient time
-between the time it enters idle and the next known wake up. SPC mode is used
-to indicate a core entering a power down state without consulting any other
-cpu or the system resources. This helps save power only on that core.  The SPM
-sequence for this idle state is programmed to power down the supply to the
-core, wait for the interrupt, restore power to the core, and ensure the
-system state including cache hierarchy is ready before allowing core to
-resume. Applying power and resetting the core causes the core to warmboot
-back into Elevation Level (EL) which trampolines the control back to the
-kernel. Entering a power down state for the cpu, needs to be done by trapping
-into a EL. Failing to do so, would result in a crash enforced by the warm boot
-code in the EL for the SoC. On SoCs with write-back L1 cache, the cache has to
-be flushed in s/w, before powering down the core.
-
-Power Collapse: This state is similar to the SPC mode, but distinguishes
-itself in that the cpu acknowledges and permits the SoC to enter deeper sleep
-modes. In a hierarchical power domain SoC, this means L2 and other caches can
-be flushed, system bus, clocks - lowered, and SoC main XO clock gated and
-voltages reduced, provided all cpus enter this state.  Since the span of low
-power modes possible at this state is vast, the exit latency and the residency
-of this low power mode would be considered high even though at a cpu level,
-this essentially is cpu power down. The SPM in this state also may handshake
-with the Resource power manager (RPM) processor in the SoC to indicate a
-complete application processor subsystem shut down.
-
-The idle-state for QCOM SoCs are distinguished by the compatible property of
-the idle-states device node.
-
-The devicetree representation of the idle state should be -
-
-Required properties:
-
-- compatible: Must be one of -
-                       "qcom,idle-state-ret",
-                       "qcom,idle-state-spc",
-                       "qcom,idle-state-pc",
-               and "arm,idle-state".
-
-Other required and optional properties are specified in [1].
-
-Example:
-
-       idle-states {
-               CPU_SPC: spc {
-                       compatible = "qcom,idle-state-spc", "arm,idle-state";
-                       entry-latency-us = <150>;
-                       exit-latency-us = <200>;
-                       min-residency-us = <2000>;
-               };
-       };
-
-[1]. Documentation/devicetree/bindings/cpu/idle-states.yaml
diff --git a/Bindings/arm/qcom,coresight-remote-etm.yaml b/Bindings/arm/qcom,coresight-remote-etm.yaml
new file mode 100644 (file)
index 0000000..4fd5752
--- /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/arm/qcom,coresight-remote-etm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Coresight Remote ETM(Embedded Trace Macrocell)
+
+maintainers:
+  - Jinlong Mao <quic_jinlmao@quicinc.com>
+  - Tao Zhang <quic_taozha@quicinc.com>
+
+description:
+  Support for ETM trace collection on remote processor using coresight
+  framework. Enabling this will allow turning on ETM tracing on remote
+  processor like modem processor via sysfs and collecting the trace
+  via coresight TMC sinks.
+
+properties:
+  compatible:
+    const: qcom,coresight-remote-etm
+
+  out-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port:
+        description: Output connection to the CoreSight Trace bus.
+        $ref: /schemas/graph.yaml#/properties/port
+
+required:
+  - compatible
+  - out-ports
+
+additionalProperties: false
+
+examples:
+  - |
+    etm {
+        compatible = "qcom,coresight-remote-etm";
+
+        out-ports {
+            port {
+                modem_etm0_out_funnel_modem: endpoint {
+                    remote-endpoint = <&funnel_modem_in_modem_etm0>;
+                };
+            };
+        };
+    };
+...
index 3bad47b7b02bb9921fe23c7d57353fea06389f63..61ddc3b5b247b0fcde7fdb320819d1a4da5d6ce9 100644 (file)
@@ -44,6 +44,23 @@ properties:
     minItems: 1
     maxItems: 2
 
+  qcom,dsb-element-size:
+    description:
+      Specifies the DSB(Discrete Single Bit) element size supported by
+      the monitor. The associated aggregator will read this size before it
+      is enabled. DSB element size currently only supports 32-bit and 64-bit.
+    $ref: /schemas/types.yaml#/definitions/uint8
+    enum: [32, 64]
+
+  qcom,dsb-msrs-num:
+    description:
+      Specifies the number of DSB(Discrete Single Bit) MSR(mux select register)
+      registers supported by the monitor. If this property is not configured
+      or set to 0, it means this DSB TPDM doesn't support MSR.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 32
+
   clocks:
     maxItems: 1
 
@@ -77,6 +94,9 @@ examples:
       compatible = "qcom,coresight-tpdm", "arm,primecell";
       reg = <0x0684c000 0x1000>;
 
+      qcom,dsb-element-size = /bits/ 8 <32>;
+      qcom,dsb-msrs-num = <16>;
+
       clocks = <&aoss_qmp>;
       clock-names = "apb_pclk";
 
index 97621c92a1ab31bef49b55e7e35b8b98ef51b59b..d0751a572af39eecbbd2f8323a6c3c94b3fdeeac 100644 (file)
@@ -23,7 +23,7 @@ description: |
 select:
   properties:
     compatible:
-      pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+      pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
   required:
     - compatible
 
@@ -31,17 +31,17 @@ properties:
   compatible:
     oneOf:
       # Preferred naming style for compatibles of SoC components:
-      - pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+(pro)?-.*$"
+      - pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+(pro)?-.*$"
       - pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
 
       # Legacy namings - variations of existing patterns/compatibles are OK,
       # but do not add completely new entries to these:
-      - pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
-      - pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
-      - pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
-      - pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
-      - pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
-      - pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+      - pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
+      - pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
+      - pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
+      - pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
+      - pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
+      - pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
       - enum:
           - qcom,dsi-ctrl-6g-qcm2290
           - qcom,gpucc-sdm630
index 7f80f48a09544a41e587a5453ab9245a44780fa3..1a5fb889a4440fbd41d2fd415c1b67f10cbcdbc8 100644 (file)
@@ -87,29 +87,18 @@ description: |
         sm8350
         sm8450
         sm8550
+        sm8650
+        x1e80100
 
   The 'board' element must be one of the following strings:
 
         adp
-        ap-al02-c2
-        ap-al02-c6
-        ap-al02-c7
-        ap-al02-c8
-        ap-al02-c9
-        ap-mi01.2
-        ap-mi01.3
-        ap-mi01.6
-        ap-mi01.9
         cdp
-        cp01-c1
         dragonboard
-        hk01
-        hk10-c1
-        hk10-c2
         idp
         liquid
-        rdp432-c2
         mtp
+        qcp
         qrd
         rb2
         ride
@@ -138,7 +127,7 @@ description: |
   There are many devices in the list below that run the standard ChromeOS
   bootloader setup and use the open source depthcharge bootloader to boot the
   OS. These devices do not use the scheme described above. For details, see:
-  https://docs.kernel.org/arm/google/chromebook-boot-flow.html
+  https://docs.kernel.org/arch/arm/google/chromebook-boot-flow.html
 
 properties:
   $nodename:
@@ -186,11 +175,24 @@ properties:
 
       - items:
           - enum:
+              - microsoft,dempsey
+              - microsoft,makepeace
+              - microsoft,moneypenny
               - samsung,s3ve3g
           - const: qcom,msm8226
 
       - items:
           - enum:
+              - htc,memul
+              - microsoft,superman-lte
+              - microsoft,tesla
+              - motorola,peregrine
+          - const: qcom,msm8926
+          - const: qcom,msm8226
+
+      - items:
+          - enum:
+              - huawei,kiwi
               - longcheer,l9100
               - samsung,a7
               - sony,kanuti-tulip
@@ -397,6 +399,8 @@ properties:
       - items:
           - enum:
               - fairphone,fp5
+              - qcom,qcm6490-idp
+              - qcom,qcs6490-rb3gen2
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
@@ -1009,6 +1013,7 @@ properties:
               - sony,pdx203-generic
               - sony,pdx206-generic
               - xiaomi,elish
+              - xiaomi,pipa
           - const: qcom,sm8250
 
       - items:
@@ -1034,6 +1039,18 @@ properties:
               - qcom,sm8550-qrd
           - const: qcom,sm8550
 
+      - items:
+          - enum:
+              - qcom,sm8650-mtp
+              - qcom,sm8650-qrd
+          - const: qcom,sm8650
+
+      - items:
+          - enum:
+              - qcom,x1e80100-crd
+              - qcom,x1e80100-qcp
+          - const: qcom,x1e80100
+
   # Board compatibles go above
 
   qcom,msm-id:
index 5f7c6c4aad8f13c079930ab520e0a355463c57a4..5cf5cbef2cf550efec0910622c18cbc046bbd374 100644 (file)
@@ -30,9 +30,11 @@ properties:
           - const: amarula,vyasa-rk3288
           - const: rockchip,rk3288
 
-      - description: Anbernic RG351M
+      - description: Anbernic RK3326 Handheld Gaming Console
         items:
-          - const: anbernic,rg351m
+          - enum:
+              - anbernic,rg351m
+              - anbernic,rg351v
           - const: rockchip,rk3326
 
       - description: Anbernic RG353P
@@ -95,22 +97,30 @@ properties:
           - const: chipspark,rayeager-px2
           - const: rockchip,rk3066a
 
+      - description: Cool Pi Compute Module 5(CM5) EVB
+        items:
+          - enum:
+              - coolpi,pi-cm5-evb
+          - const: coolpi,pi-cm5
+          - const: rockchip,rk3588
+
+      - description: Cool Pi 4 Model B
+        items:
+          - const: coolpi,pi-4b
+          - const: rockchip,rk3588s
+
       - description: Edgeble Neural Compute Module 2(Neu2) SoM based boards
         items:
           - const: edgeble,neural-compute-module-2-io   # Edgeble Neural Compute Module 2 IO Board
           - const: edgeble,neural-compute-module-2      # Edgeble Neural Compute Module 2 SoM
           - const: rockchip,rv1126
 
-      - description: Edgeble Neural Compute Module 6(Neu6) Model A SoM based boards
-        items:
-          - const: edgeble,neural-compute-module-6a-io  # Edgeble Neural Compute Module 6A IO Board
-          - const: edgeble,neural-compute-module-6a     # Edgeble Neural Compute Module 6A SoM
-          - const: rockchip,rk3588
-
-      - description: Edgeble Neural Compute Module 6(Neu6) Model B SoM based boards
+      - description: Edgeble Neural Compute Module 6(Neu6) SoM based boards
         items:
-          - const: edgeble,neural-compute-module-6b-io  # Edgeble Neural Compute Module 6B IO Board
-          - const: edgeble,neural-compute-module-6b     # Edgeble Neural Compute Module 6B SoM
+          - const: edgeble,neural-compute-module-6a-io  # Edgeble NCM6A-IO Board
+          - enum:
+              - edgeble,neural-compute-module-6a        # Edgeble Neural Compute Module 6A SoM
+              - edgeble,neural-compute-module-6b        # Edgeble Neural Compute Module 6B SoM
           - const: rockchip,rk3588
 
       - description: Elgin RV1108 R1
@@ -237,6 +247,11 @@ properties:
           - const: geekbuying,geekbox
           - const: rockchip,rk3368
 
+      - description: Geniatech XPI-3128
+        items:
+          - const: geniatech,xpi-3128
+          - const: rockchip,rk3128
+
       - description: Google Bob (Asus Chromebook Flip C101PA)
         items:
           - const: google,bob-rev13
@@ -674,9 +689,12 @@ properties:
           - const: pine64,soquartz
           - const: rockchip,rk3566
 
-      - description: Powkiddy RGB30
+      - description: Powkiddy RK3566 Handheld Gaming Console
         items:
-          - const: powkiddy,rgb30
+          - enum:
+              - powkiddy,rgb30
+              - powkiddy,rk2023
+              - powkiddy,x55
           - const: rockchip,rk3566
 
       - description: Radxa Compute Module 3(CM3)
@@ -875,6 +893,11 @@ properties:
           - const: tsd,rk3399-puma-haikou
           - const: rockchip,rk3399
 
+      - description: Theobroma Systems RK3588-SBC Jaguar
+        items:
+          - const: tsd,rk3588-jaguar
+          - const: rockchip,rk3588
+
       - description: Tronsmart Orion R68 Meta
         items:
           - const: tronsmart,orion-r68-meta
@@ -922,6 +945,13 @@ properties:
           - const: rockchip,rk3568-bpi-r2pro
           - const: rockchip,rk3568
 
+      - description: Sonoff iHost Smart Home Hub
+        items:
+          - const: itead,sonoff-ihost
+          - enum:
+              - rockchip,rv1126
+              - rockchip,rv1109
+
 additionalProperties: true
 
 ...
index e3ffd8159ab6c65f9575c60d4a4ca5137ae64e2d..01dcbd8aa7030350132a85d99d7e1369221ef3d0 100644 (file)
@@ -230,6 +230,12 @@ properties:
               - samsung,exynosautov9-sadk   # Samsung Exynos Auto v9 SADK
           - const: samsung,exynosautov9
 
+      - description: Exynos Auto v920 based boards
+        items:
+          - enum:
+              - samsung,exynosautov920-sadk   # Samsung Exynos Auto v920 SADK
+          - const: samsung,exynosautov920
+
 required:
   - compatible
 
index eaa67b8e0d6c7437e73ba9e5c891be56ef873842..40fc3c8b9dceece09bd01e05d5d4e7cf3e048f3f 100644 (file)
@@ -35,6 +35,11 @@ properties:
               - sprd,ums512-1h10
           - const: sprd,ums512
 
+      - items:
+          - enum:
+              - sprd,ums9620-2h10
+          - const: sprd,ums9620
+
 additionalProperties: true
 
 ...
index df087c81c69ebf9b5e1598ac6765162680db9ba3..bc2f43330ae42c4fa73168a6c0ef48872d315cba 100644 (file)
@@ -82,29 +82,19 @@ properties:
               - shiratech,stm32mp157a-iot-box # IoT Box
               - shiratech,stm32mp157a-stinger96 # Stinger96
               - st,stm32mp157c-ed1
+              - st,stm32mp157c-ed1-scmi
               - st,stm32mp157a-dk1
+              - st,stm32mp157a-dk1-scmi
               - st,stm32mp157c-dk2
+              - st,stm32mp157c-dk2-scmi
           - const: st,stm32mp157
 
-      - items:
-          - const: st,stm32mp157a-dk1-scmi
-          - const: st,stm32mp157a-dk1
-          - const: st,stm32mp157
-      - items:
-          - const: st,stm32mp157c-dk2-scmi
-          - const: st,stm32mp157c-dk2
-          - const: st,stm32mp157
-      - items:
-          - const: st,stm32mp157c-ed1-scmi
-          - const: st,stm32mp157c-ed1
-          - const: st,stm32mp157
       - items:
           - const: st,stm32mp157c-ev1
           - const: st,stm32mp157c-ed1
           - const: st,stm32mp157
       - items:
           - const: st,stm32mp157c-ev1-scmi
-          - const: st,stm32mp157c-ev1
           - const: st,stm32mp157c-ed1
           - const: st,stm32mp157
 
index 11c5ce941dd7e3aac41ad8ccc76c2b1bd4b4b393..a9d8e85565b8996cbd5c78f52db847062805e0f5 100644 (file)
@@ -868,6 +868,11 @@ properties:
           - const: topwise,a721
           - const: allwinner,sun4i-a10
 
+      - description: Transpeed 8K618-T
+        items:
+          - const: transpeed,8k618-t
+          - const: allwinner,sun50i-h618
+
       - description: Utoo P66
         items:
           - const: utoo,p66
@@ -1013,6 +1018,11 @@ properties:
           - const: xunlong,orangepi-zero2
           - const: allwinner,sun50i-h616
 
+      - description: Xunlong OrangePi Zero 2W
+        items:
+          - const: xunlong,orangepi-zero2w
+          - const: allwinner,sun50i-h618
+
       - description: Xunlong OrangePi Zero 3
         items:
           - const: xunlong,orangepi-zero3
index 03d2a0d79fb06c4d708bf7c2917d08549a677460..c6506bccfe88fa23f4b6b6a610941881678c2217 100644 (file)
@@ -50,6 +50,7 @@ properties:
           - enum:
               - toradex,verdin-am62-nonwifi-dahlia # Verdin AM62 Module on Dahlia
               - toradex,verdin-am62-nonwifi-dev    # Verdin AM62 Module on Verdin Development Board
+              - toradex,verdin-am62-nonwifi-mallow # Verdin AM62 Module on Mallow
               - toradex,verdin-am62-nonwifi-yavia  # Verdin AM62 Module on Yavia
           - const: toradex,verdin-am62-nonwifi     # Verdin AM62 Module without Wi-Fi / BT
           - const: toradex,verdin-am62             # Verdin AM62 Module
@@ -60,6 +61,7 @@ properties:
           - enum:
               - toradex,verdin-am62-wifi-dahlia # Verdin AM62 Wi-Fi / BT Module on Dahlia
               - toradex,verdin-am62-wifi-dev    # Verdin AM62 Wi-Fi / BT M. on Verdin Development B.
+              - toradex,verdin-am62-wifi-mallow # Verdin AM62 Wi-Fi / BT Module on Mallow
               - toradex,verdin-am62-wifi-yavia  # Verdin AM62 Wi-Fi / BT Module on Yavia
           - const: toradex,verdin-am62-wifi     # Verdin AM62 Wi-Fi / BT Module
           - const: toradex,verdin-am62          # Verdin AM62 Module
index b18fc046390a448e3a61c9b1673ed340e7d19659..93e04a109a12fa81c4f5bbf6b331dc44d805564c 100644 (file)
@@ -134,6 +134,8 @@ properties:
               - amazon,omap4-kc1        # Amazon Kindle Fire (first generation)
               - motorola,droid4         # Motorola Droid 4 XT894
               - motorola,droid-bionic   # Motorola Droid Bionic XT875
+              - motorola,xyboard-mz609
+              - motorola,xyboard-mz617
               - ti,omap4-panda
               - ti,omap4-sdp
           - const: ti,omap4430
index b29ce598f9aaea327bcd177dc6bf143ee8693ebf..9952e0ef77674c11d115dab50a904841410e148a 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Ceva AHCI SATA Controller
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 description: |
   The Ceva SATA controller mostly conforms to the AHCI interface with some
index fde07e4b119dfb8a356c0362f000b0fce3125f18..406a922a714e8fc7d07adbbc312052e1cff8e1c2 100644 (file)
@@ -113,7 +113,7 @@ examples:
     hd44780 {
             compatible = "hit,hd44780";
             display-height-chars = <2>;
-            display-width-chars  = <16>;
+            display-width-chars = <16>;
             data-gpios = <&pcf8574 4 0>,
                          <&pcf8574 5 0>,
                          <&pcf8574 6 0>,
index 580f9a97ddf7824887a369c7c030dfbbe84c1d0a..07ccbda4a0ab5405f9fcd944a06a4bbd2f545d26 100644 (file)
@@ -33,6 +33,8 @@ properties:
       - qcom,sm8350-llcc
       - qcom,sm8450-llcc
       - qcom,sm8550-llcc
+      - qcom,sm8650-llcc
+      - qcom,x1e80100-llcc
 
   reg:
     minItems: 2
@@ -64,6 +66,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,qdu1000-llcc
               - qcom,sc7180-llcc
               - qcom,sm6350-llcc
     then:
@@ -101,9 +104,9 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,qdu1000-llcc
               - qcom,sc8180x-llcc
               - qcom,sc8280xp-llcc
+              - qcom,x1e80100-llcc
     then:
       properties:
         reg:
index 8a6a78e1a7ab880dea6637ac40ed87289262ebbf..7e8cebe215846c11126f2dd9371660cb4e5c4594 100644 (file)
@@ -38,7 +38,9 @@ properties:
               - sifive,fu740-c000-ccache
           - const: cache
       - items:
-          - const: starfive,jh7110-ccache
+          - enum:
+              - starfive,jh7100-ccache
+              - starfive,jh7110-ccache
           - const: sifive,ccache0
           - const: cache
       - items:
@@ -88,6 +90,7 @@ allOf:
           contains:
             enum:
               - sifive,fu740-c000-ccache
+              - starfive,jh7100-ccache
               - starfive,jh7110-ccache
               - microchip,mpfs-ccache
 
@@ -111,6 +114,7 @@ allOf:
           contains:
             enum:
               - sifive,fu740-c000-ccache
+              - starfive,jh7100-ccache
               - starfive,jh7110-ccache
 
     then:
index 624984d51c10649738b0305363c7bf17648c7d35..7f8d98226437e480151fdd86e7cd3b5a7f5542ae 100644 (file)
@@ -125,7 +125,7 @@ examples:
     clk25m: clock-oscillator-25m {
       compatible = "fixed-clock";
       #clock-cells = <0>;
-      clock-frequency  = <25000000>;
+      clock-frequency = <25000000>;
       clock-output-names = "clk25m";
     };
 ...
diff --git a/Bindings/clock/brcm,kona-ccu.txt b/Bindings/clock/brcm,kona-ccu.txt
deleted file mode 100644 (file)
index 8e5a7d8..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-Broadcom Kona Family Clocks
-
-This binding is associated with Broadcom SoCs having "Kona" style
-clock control units (CCUs).  A CCU is a clock provider that manages
-a set of clock signals.  Each CCU is represented by a node in the
-device tree.
-
-This binding uses the common clock binding:
-    Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Required properties:
-- compatible
-       Shall have a value of the form "brcm,<model>-<which>-ccu",
-       where <model> is a Broadcom SoC model number and <which> is
-       the name of a defined CCU.  For example:
-           "brcm,bcm11351-root-ccu"
-       The compatible strings used for each supported SoC family
-       are defined below.
-- reg
-       Shall define the base and range of the address space
-       containing clock control registers
-- #clock-cells
-       Shall have value <1>.  The permitted clock-specifier values
-       are defined below.
-- clock-output-names
-       Shall be an ordered list of strings defining the names of
-       the clocks provided by the CCU.
-
-Device tree example:
-
-       slave_ccu: slave_ccu {
-               compatible = "brcm,bcm11351-slave-ccu";
-               reg = <0x3e011000 0x0f00>;
-               #clock-cells = <1>;
-               clock-output-names = "uartb",
-                                    "uartb2",
-                                    "uartb3",
-                                    "uartb4";
-       };
-
-       ref_crystal_clk: ref_crystal {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <26000000>;
-       };
-
-       uart@3e002000 {
-               compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart";
-               reg = <0x3e002000 0x1000>;
-               clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>;
-               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-       };
-
-BCM281XX family
----------------
-CCU compatible string values for SoCs in the BCM281XX family are:
-    "brcm,bcm11351-root-ccu"
-    "brcm,bcm11351-aon-ccu"
-    "brcm,bcm11351-hub-ccu"
-    "brcm,bcm11351-master-ccu"
-    "brcm,bcm11351-slave-ccu"
-
-The following table defines the set of CCUs and clock specifiers for
-BCM281XX family clocks.  When a clock consumer references a clocks,
-its symbolic specifier (rather than its numeric index value) should
-be used.  These specifiers are defined in:
-    "include/dt-bindings/clock/bcm281xx.h"
-
-    CCU     Clock           Type    Index   Specifier
-    ---     -----           ----    -----   ---------
-    root    frac_1m         peri      0     BCM281XX_ROOT_CCU_FRAC_1M
-
-    aon     hub_timer       peri      0     BCM281XX_AON_CCU_HUB_TIMER
-    aon     pmu_bsc         peri      1     BCM281XX_AON_CCU_PMU_BSC
-    aon     pmu_bsc_var     peri      2     BCM281XX_AON_CCU_PMU_BSC_VAR
-
-    hub     tmon_1m         peri      0     BCM281XX_HUB_CCU_TMON_1M
-
-    master  sdio1           peri      0     BCM281XX_MASTER_CCU_SDIO1
-    master  sdio2           peri      1     BCM281XX_MASTER_CCU_SDIO2
-    master  sdio3           peri      2     BCM281XX_MASTER_CCU_SDIO3
-    master  sdio4           peri      3     BCM281XX_MASTER_CCU_SDIO4
-    master  dmac            peri      4     BCM281XX_MASTER_CCU_DMAC
-    master  usb_ic          peri      5     BCM281XX_MASTER_CCU_USB_IC
-    master  hsic2_48m       peri      6     BCM281XX_MASTER_CCU_HSIC_48M
-    master  hsic2_12m       peri      7     BCM281XX_MASTER_CCU_HSIC_12M
-
-    slave   uartb           peri      0     BCM281XX_SLAVE_CCU_UARTB
-    slave   uartb2          peri      1     BCM281XX_SLAVE_CCU_UARTB2
-    slave   uartb3          peri      2     BCM281XX_SLAVE_CCU_UARTB3
-    slave   uartb4          peri      3     BCM281XX_SLAVE_CCU_UARTB4
-    slave   ssp0            peri      4     BCM281XX_SLAVE_CCU_SSP0
-    slave   ssp2            peri      5     BCM281XX_SLAVE_CCU_SSP2
-    slave   bsc1            peri      6     BCM281XX_SLAVE_CCU_BSC1
-    slave   bsc2            peri      7     BCM281XX_SLAVE_CCU_BSC2
-    slave   bsc3            peri      8     BCM281XX_SLAVE_CCU_BSC3
-    slave   pwm             peri      9     BCM281XX_SLAVE_CCU_PWM
-
-
-BCM21664 family
----------------
-CCU compatible string values for SoCs in the BCM21664 family are:
-    "brcm,bcm21664-root-ccu"
-    "brcm,bcm21664-aon-ccu"
-    "brcm,bcm21664-master-ccu"
-    "brcm,bcm21664-slave-ccu"
-
-The following table defines the set of CCUs and clock specifiers for
-BCM21664 family clocks.  When a clock consumer references a clocks,
-its symbolic specifier (rather than its numeric index value) should
-be used.  These specifiers are defined in:
-    "include/dt-bindings/clock/bcm21664.h"
-
-    CCU     Clock           Type    Index   Specifier
-    ---     -----           ----    -----   ---------
-    root    frac_1m         peri      0     BCM21664_ROOT_CCU_FRAC_1M
-
-    aon     hub_timer       peri      0     BCM21664_AON_CCU_HUB_TIMER
-
-    master  sdio1           peri      0     BCM21664_MASTER_CCU_SDIO1
-    master  sdio2           peri      1     BCM21664_MASTER_CCU_SDIO2
-    master  sdio3           peri      2     BCM21664_MASTER_CCU_SDIO3
-    master  sdio4           peri      3     BCM21664_MASTER_CCU_SDIO4
-    master  sdio1_sleep     peri      4     BCM21664_MASTER_CCU_SDIO1_SLEEP
-    master  sdio2_sleep     peri      5     BCM21664_MASTER_CCU_SDIO2_SLEEP
-    master  sdio3_sleep     peri      6     BCM21664_MASTER_CCU_SDIO3_SLEEP
-    master  sdio4_sleep     peri      7     BCM21664_MASTER_CCU_SDIO4_SLEEP
-
-    slave   uartb           peri      0     BCM21664_SLAVE_CCU_UARTB
-    slave   uartb2          peri      1     BCM21664_SLAVE_CCU_UARTB2
-    slave   uartb3          peri      2     BCM21664_SLAVE_CCU_UARTB3
-    slave   uartb4          peri      3     BCM21664_SLAVE_CCU_UARTB4
-    slave   bsc1            peri      4     BCM21664_SLAVE_CCU_BSC1
-    slave   bsc2            peri      5     BCM21664_SLAVE_CCU_BSC2
-    slave   bsc3            peri      6     BCM21664_SLAVE_CCU_BSC3
-    slave   bsc4            peri      7     BCM21664_SLAVE_CCU_BSC4
diff --git a/Bindings/clock/brcm,kona-ccu.yaml b/Bindings/clock/brcm,kona-ccu.yaml
new file mode 100644 (file)
index 0000000..e565695
--- /dev/null
@@ -0,0 +1,181 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/brcm,kona-ccu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom Kona family clock control units (CCU)
+
+maintainers:
+  - Florian Fainelli <florian.fainelli@broadcom.com>
+  - Ray Jui <rjui@broadcom.com>
+  - Scott Branden <sbranden@broadcom.com>
+
+description: |
+  Broadcom "Kona" style clock control unit (CCU) is a clock provider that
+  manages a set of clock signals.
+
+  All available clock IDs are defined in
+  - include/dt-bindings/clock/bcm281xx.h for BCM281XX family
+  - include/dt-bindings/clock/bcm21664.h for BCM21664 family
+
+properties:
+  compatible:
+    enum:
+      - brcm,bcm11351-aon-ccu
+      - brcm,bcm11351-hub-ccu
+      - brcm,bcm11351-master-ccu
+      - brcm,bcm11351-root-ccu
+      - brcm,bcm11351-slave-ccu
+      - brcm,bcm21664-aon-ccu
+      - brcm,bcm21664-master-ccu
+      - brcm,bcm21664-root-ccu
+      - brcm,bcm21664-slave-ccu
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  clock-output-names:
+    minItems: 1
+    maxItems: 10
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - clock-output-names
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm11351-aon-ccu
+    then:
+      properties:
+        clock-output-names:
+          items:
+            - const: hub_timer
+            - const: pmu_bsc
+            - const: pmu_bsc_var
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm11351-hub-ccu
+    then:
+      properties:
+        clock-output-names:
+          const: tmon_1m
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm11351-master-ccu
+    then:
+      properties:
+        clock-output-names:
+          items:
+            - const: sdio1
+            - const: sdio2
+            - const: sdio3
+            - const: sdio4
+            - const: usb_ic
+            - const: hsic2_48m
+            - const: hsic2_12m
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - brcm,bcm11351-root-ccu
+              - brcm,bcm21664-root-ccu
+    then:
+      properties:
+        clock-output-names:
+          const: frac_1m
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm11351-slave-ccu
+    then:
+      properties:
+        clock-output-names:
+          items:
+            - const: uartb
+            - const: uartb2
+            - const: uartb3
+            - const: uartb4
+            - const: ssp0
+            - const: ssp2
+            - const: bsc1
+            - const: bsc2
+            - const: bsc3
+            - const: pwm
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm21664-aon-ccu
+    then:
+      properties:
+        clock-output-names:
+          const: hub_timer
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm21664-master-ccu
+    then:
+      properties:
+        clock-output-names:
+          items:
+            - const: sdio1
+            - const: sdio2
+            - const: sdio3
+            - const: sdio4
+            - const: sdio1_sleep
+            - const: sdio2_sleep
+            - const: sdio3_sleep
+            - const: sdio4_sleep
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm21664-slave-ccu
+    then:
+      properties:
+        clock-output-names:
+          items:
+            - const: uartb
+            - const: uartb2
+            - const: uartb3
+            - const: bsc1
+            - const: bsc2
+            - const: bsc3
+            - const: bsc4
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@3e011000 {
+      compatible = "brcm,bcm11351-slave-ccu";
+      reg = <0x3e011000 0x0f00>;
+      #clock-cells = <1>;
+      clock-output-names = "uartb",
+                           "uartb2",
+                           "uartb3",
+                           "uartb4",
+                           "ssp0",
+                           "ssp2",
+                           "bsc1",
+                           "bsc2",
+                           "bsc3",
+                           "pwm";
+    };
+...
diff --git a/Bindings/clock/fsl,imx93-anatop.yaml b/Bindings/clock/fsl,imx93-anatop.yaml
new file mode 100644 (file)
index 0000000..8a3b247
--- /dev/null
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/fsl,imx93-anatop.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX93 ANATOP Clock Module
+
+maintainers:
+  - Peng Fan <peng.fan@nxp.com>
+
+description: |
+  NXP i.MX93 ANATOP module which contains PLL and OSC to Clock Controller
+  Module.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,imx93-anatop
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@44480000 {
+        compatible = "fsl,imx93-anatop";
+        reg = <0x44480000 0x2000>;
+        #clock-cells = <1>;
+    };
+
+...
diff --git a/Bindings/clock/google,gs101-clock.yaml b/Bindings/clock/google,gs101-clock.yaml
new file mode 100644 (file)
index 0000000..ca7fdad
--- /dev/null
@@ -0,0 +1,106 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google GS101 SoC clock controller
+
+maintainers:
+  - Peter Griffin <peter.griffin@linaro.org>
+
+description: |
+  Google GS101 clock controller is comprised of several CMU units, generating
+  clocks for different domains. Those CMU units are modeled as separate device
+  tree nodes, and might depend on each other. The root clock in that clock tree
+  is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate
+  clock in dts.
+
+  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
+  dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
+
+  Each clock is assigned an identifier and client nodes can use this identifier
+  to specify the clock which they consume. All clocks available for usage
+  in clock consumer nodes are defined as preprocessor macros in
+  'dt-bindings/clock/gs101.h' header.
+
+properties:
+  compatible:
+    enum:
+      - google,gs101-cmu-top
+      - google,gs101-cmu-apm
+      - google,gs101-cmu-misc
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    maxItems: 2
+
+  "#clock-cells":
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - "#clock-cells"
+  - clocks
+  - clock-names
+  - reg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - google,gs101-cmu-top
+              - google,gs101-cmu-apm
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+
+        clock-names:
+          items:
+            - const: oscclk
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-cmu-misc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Misc bus clock (from CMU_TOP)
+            - description: Misc sss clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: bus
+            - const: sss
+
+additionalProperties: false
+
+examples:
+  # Clock controller node for CMU_TOP
+  - |
+    #include <dt-bindings/clock/google,gs101.h>
+
+    cmu_top: clock-controller@1e080000 {
+        compatible = "google,gs101-cmu-top";
+        reg = <0x1e080000 0x8000>;
+        #clock-cells = <1>;
+        clocks = <&ext_24_5m>;
+        clock-names = "oscclk";
+    };
+
+...
diff --git a/Bindings/clock/hi3620-clock.txt b/Bindings/clock/hi3620-clock.txt
deleted file mode 100644 (file)
index dad6269..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-* Hisilicon Hi3620 Clock Controller
-
-The Hi3620 clock controller generates and supplies clock to various
-controllers within the Hi3620 SoC.
-
-Required Properties:
-
-- compatible: should be one of the following.
-  - "hisilicon,hi3620-clock" - controller compatible with Hi3620 SoC.
-  - "hisilicon,hi3620-mmc-clock" - controller specific for Hi3620 mmc.
-
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-- #clock-cells: should be 1.
-
-Each clock is assigned an identifier and client nodes use this identifier
-to specify the clock which they consume.
-
-All these identifier could be found in <dt-bindings/clock/hi3620-clock.h>.
index 372c1d744bc27be8e72d84a21ac23f000d15d9e6..685535846cbb7faf3f75dfde739e7a58332c36ed 100644 (file)
@@ -22,6 +22,7 @@ properties:
           - mediatek,mt7622-apmixedsys
           - mediatek,mt7981-apmixedsys
           - mediatek,mt7986-apmixedsys
+          - mediatek,mt7988-apmixedsys
           - mediatek,mt8135-apmixedsys
           - mediatek,mt8173-apmixedsys
           - mediatek,mt8516-apmixedsys
diff --git a/Bindings/clock/mediatek,ethsys.yaml b/Bindings/clock/mediatek,ethsys.yaml
new file mode 100644 (file)
index 0000000..f9cddac
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/mediatek,ethsys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mediatek ethsys controller
+
+description:
+  The available clocks are defined in dt-bindings/clock/mt*-clk.h.
+
+maintainers:
+  - James Liao <jamesjj.liao@mediatek.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - mediatek,mt2701-ethsys
+              - mediatek,mt7622-ethsys
+              - mediatek,mt7629-ethsys
+              - mediatek,mt7981-ethsys
+              - mediatek,mt7986-ethsys
+              - mediatek,mt7988-ethsys
+          - const: syscon
+      - items:
+          - const: mediatek,mt7623-ethsys
+          - const: mediatek,mt2701-ethsys
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 1
+
+required:
+  - reg
+  - "#clock-cells"
+  - "#reset-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@1b000000 {
+        compatible = "mediatek,mt2701-ethsys", "syscon";
+        reg = <0x1b000000 0x1000>;
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+    };
diff --git a/Bindings/clock/mediatek,mt7988-ethwarp.yaml b/Bindings/clock/mediatek,mt7988-ethwarp.yaml
new file mode 100644 (file)
index 0000000..e32a025
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/mediatek,mt7988-ethwarp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT7988 ethwarp Controller
+
+maintainers:
+  - Daniel Golle <daniel@makrotopia.org>
+
+description:
+  The Mediatek MT7988 ethwarp controller provides clocks and resets for the
+  Ethernet related subsystems found the MT7988 SoC.
+  The clock values can be found in <dt-bindings/clock/mt*-clk.h>.
+
+properties:
+  compatible:
+    items:
+      - const: mediatek,mt7988-ethwarp
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/reset/ti-syscon.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@15031000 {
+            compatible = "mediatek,mt7988-ethwarp";
+            reg = <0 0x15031000 0 0x1000>;
+            #clock-cells = <1>;
+            #reset-cells = <1>;
+        };
+    };
diff --git a/Bindings/clock/mediatek,mt7988-xfi-pll.yaml b/Bindings/clock/mediatek,mt7988-xfi-pll.yaml
new file mode 100644 (file)
index 0000000..192f145
--- /dev/null
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/mediatek,mt7988-xfi-pll.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT7988 XFI PLL Clock Controller
+
+maintainers:
+  - Daniel Golle <daniel@makrotopia.org>
+
+description:
+  The MediaTek XFI PLL controller provides the 156.25MHz clock for the
+  Ethernet SerDes PHY from the 40MHz top_xtal clock.
+
+properties:
+  compatible:
+    const: mediatek,mt7988-xfi-pll
+
+  reg:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - resets
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+        clock-controller@11f40000 {
+            compatible = "mediatek,mt7988-xfi-pll";
+            reg = <0 0x11f40000 0 0x1000>;
+            resets = <&watchdog 16>;
+            #clock-cells = <1>;
+        };
+    };
index d7214d97b2ba48268f789640af239ad1aec70635..860570320545dca98a4b1acedfa56ac57745ec5e 100644 (file)
@@ -43,8 +43,6 @@ properties:
       - mediatek,mt8188-vdecsys
       - mediatek,mt8188-vdecsys-soc
       - mediatek,mt8188-vencsys
-      - mediatek,mt8188-vppsys0
-      - mediatek,mt8188-vppsys1
       - mediatek,mt8188-wpesys
       - mediatek,mt8188-wpesys-vpp0
 
index 6d087ded7437ab914dd40662984e6ab1acc9dc9a..bdf3b55bd56fd4f228a37c45e7eeb7ea2d264034 100644 (file)
@@ -37,6 +37,8 @@ properties:
               - mediatek,mt7629-topckgen
               - mediatek,mt7981-topckgen
               - mediatek,mt7986-topckgen
+              - mediatek,mt7988-mcusys
+              - mediatek,mt7988-topckgen
               - mediatek,mt8167-topckgen
               - mediatek,mt8183-topckgen
           - const: syscon
index 9436266828afaf42f4fd2a05f4ba6d147cd2e72a..5ca927a8b1d538a130421b51859fb59f1108bd18 100644 (file)
@@ -16,6 +16,7 @@ description:
 properties:
   compatible:
     enum:
+      - qcom,ipq5018-a53pll
       - qcom,ipq5332-a53pll
       - qcom,ipq6018-a53pll
       - qcom,ipq8074-a53pll
index 426335a2841c929d6c9f5c6c661dda4b28bddac0..3fd3dc1069fb170532fdb37a3cacc0fee057f565 100644 (file)
@@ -15,6 +15,9 @@ description: |
 
   See also:: include/dt-bindings/clock/qcom,camcc-sm8250.h
 
+allOf:
+  - $ref: qcom,gcc.yaml#
+
 properties:
   compatible:
     const: qcom,sm8250-camcc
@@ -33,15 +36,6 @@ properties:
       - const: bi_tcxo_ao
       - const: sleep_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
   power-domains:
     items:
       - description: MMCX power domain
@@ -56,14 +50,10 @@ properties:
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
-  - '#power-domain-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/clock/qcom,gcc-ipq6018.yaml b/Bindings/clock/qcom,gcc-ipq6018.yaml
new file mode 100644 (file)
index 0000000..af5d883
--- /dev/null
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller on IPQ6018
+
+maintainers:
+  - Stephen Boyd <sboyd@kernel.org>
+  - Taniya Das <quic_tdas@quicinc.com>
+  - Robert Marko <robimarko@gmail.com>
+
+description: |
+  Qualcomm global clock control module provides the clocks, resets and power
+  domains on IPQ6018.
+
+  See also::
+    include/dt-bindings/clock/qcom,gcc-ipq6018.h
+    include/dt-bindings/reset/qcom,gcc-ipq6018.h
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+properties:
+  compatible:
+    const: qcom,gcc-ipq6018
+
+  clocks:
+    items:
+      - description: board XO clock
+      - description: sleep clock
+
+  clock-names:
+    items:
+      - const: xo
+      - const: sleep_clk
+
+required:
+  - compatible
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    clock-controller@1800000 {
+      compatible = "qcom,gcc-ipq6018";
+      reg = <0x01800000 0x80000>;
+      clocks = <&xo>, <&sleep_clk>;
+      clock-names = "xo", "sleep_clk";
+      #clock-cells = <1>;
+      #power-domain-cells = <1>;
+      #reset-cells = <1>;
+    };
+...
index 52e7831a8d6dca8350df85d0740235af64bd0f00..2d44ddc45aabb22e5a3166d1504e0a1e96037c1b 100644 (file)
@@ -27,11 +27,15 @@ properties:
     items:
       - description: board XO clock
       - description: sleep clock
+      - description: Gen3 QMP PCIe PHY PIPE clock
+      - description: Gen2 QMP PCIe PHY PIPE clock
 
   clock-names:
     items:
       - const: xo
       - const: sleep_clk
+      - const: pcie0_pipe
+      - const: pcie1_pipe
 
 required:
   - compatible
index 559fc21435c8ddc219df438581878f099bf9cc7a..7d05f0f63cef2ed46729be6c7e8f51942f8b451a 100644 (file)
@@ -15,8 +15,6 @@ description: |
   domains.
 
   See also::
-    include/dt-bindings/clock/qcom,gcc-ipq6018.h
-    include/dt-bindings/reset/qcom,gcc-ipq6018.h
     include/dt-bindings/clock/qcom,gcc-msm8953.h
     include/dt-bindings/clock/qcom,gcc-mdm9607.h
 
@@ -26,7 +24,6 @@ allOf:
 properties:
   compatible:
     enum:
-      - qcom,gcc-ipq6018
       - qcom,gcc-mdm9607
 
 required:
diff --git a/Bindings/clock/qcom,qdu1000-ecpricc.yaml b/Bindings/clock/qcom,qdu1000-ecpricc.yaml
new file mode 100644 (file)
index 0000000..fd21df0
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,qdu1000-ecpricc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm ECPRI Clock & Reset Controller for QDU1000 and QRU1000
+
+maintainers:
+  - Taniya Das <quic_tdas@quicinc.com>
+  - Imran Shaik <quic_imrashai@quicinc.com>
+
+description: |
+  Qualcomm ECPRI Specification V2.0 Common Public Radio Interface clock control
+  module which supports the clocks, resets on QDU1000 and QRU1000
+
+  See also:: include/dt-bindings/clock/qcom,qdu1000-ecpricc.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,qdu1000-ecpricc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: GPLL0 source from GCC
+      - description: GPLL1 source from GCC
+      - description: GPLL2 source from GCC
+      - description: GPLL3 source from GCC
+      - description: GPLL4 source from GCC
+      - description: GPLL5 source from GCC
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,qdu1000-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    clock-controller@280000 {
+      compatible = "qcom,qdu1000-ecpricc";
+      reg = <0x00280000 0x31c00>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&gcc GCC_ECPRI_CC_GPLL0_CLK_SRC>,
+               <&gcc GCC_ECPRI_CC_GPLL1_EVEN_CLK_SRC>,
+               <&gcc GCC_ECPRI_CC_GPLL2_EVEN_CLK_SRC>,
+               <&gcc GCC_ECPRI_CC_GPLL3_CLK_SRC>,
+               <&gcc GCC_ECPRI_CC_GPLL4_CLK_SRC>,
+               <&gcc GCC_ECPRI_CC_GPLL5_EVEN_CLK_SRC>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+    };
index 4eb5e59f67724ce2abab1be8071c6d7fcdc416e1..ca857942ed6c08cd4b906f18f6a48631da59ce9a 100644 (file)
@@ -35,6 +35,8 @@ properties:
       - qcom,sm8350-rpmh-clk
       - qcom,sm8450-rpmh-clk
       - qcom,sm8550-rpmh-clk
+      - qcom,sm8650-rpmh-clk
+      - qcom,x1e80100-rpmh-clk
 
   clocks:
     maxItems: 1
index 2dfc2a4f19182647ce4037fa85ca9bcffe61a728..c7fe6400ea13b1bd53cac591e0da06b0715d0ddc 100644 (file)
@@ -15,6 +15,9 @@ description: |
 
   See also:: include/dt-bindings/clock/qcom,camcc-sc7180.h
 
+allOf:
+  - $ref: qcom,gcc.yaml#
+
 properties:
   compatible:
     const: qcom,sc7180-camcc
@@ -31,28 +34,15 @@ properties:
       - const: iface
       - const: xo
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
   reg:
     maxItems: 1
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
-  - '#power-domain-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 01feef1cab0a0e11d963fd45f89a5a5d61856e4a..dcef8de3a905ad7d2668fb847dc3560c697d6ee0 100644 (file)
@@ -15,6 +15,9 @@ description: |
 
   See also:: include/dt-bindings/clock/qcom,camcc-sc7280.h
 
+allOf:
+  - $ref: qcom,gcc.yaml#
+
 properties:
   compatible:
     const: qcom,sc7280-camcc
@@ -31,28 +34,15 @@ properties:
       - const: bi_tcxo_ao
       - const: sleep_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
   reg:
     maxItems: 1
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
-  - '#power-domain-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 91d1f7918037b09e41c7ce94ac42f852a00de4a3..810b852ae3719dc00af124415584a7f71b050aea 100644 (file)
@@ -15,6 +15,9 @@ description: |
 
   See also:: include/dt-bindings/clock/qcom,camcc-sm845.h
 
+allOf:
+  - $ref: qcom,gcc.yaml#
+
 properties:
   compatible:
     const: qcom,sdm845-camcc
@@ -27,28 +30,15 @@ properties:
     items:
       - const: bi_tcxo
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
   reg:
     maxItems: 1
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
-  - '#power-domain-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index dc3c18e4ead72886eb43d6a16b6355efa8246291..48986460f9947df633612907b2bf0674397a424b 100644 (file)
@@ -16,10 +16,15 @@ description: |
   See also::
     include/dt-bindings/clock/qcom,sm8450-camcc.h
     include/dt-bindings/clock/qcom,sm8550-camcc.h
+    include/dt-bindings/clock/qcom,sc8280xp-camcc.h
+
+allOf:
+  - $ref: qcom,gcc.yaml#
 
 properties:
   compatible:
     enum:
+      - qcom,sc8280xp-camcc
       - qcom,sm8450-camcc
       - qcom,sm8550-camcc
 
@@ -40,29 +45,16 @@ properties:
     description:
       A phandle to an OPP node describing required MMCX performance point.
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
   reg:
     maxItems: 1
 
 required:
   - compatible
-  - reg
   - clocks
   - power-domains
   - required-opps
-  - '#clock-cells'
-  - '#reset-cells'
-  - '#power-domain-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 2320be920a5f76d9675de6038971d13eabafd1f4..1a384e8532a59cc99f8e58e3df4b570b16668690 100644 (file)
@@ -17,12 +17,14 @@ description: |
     include/dt-bindings/clock/qcom,sm8450-gpucc.h
     include/dt-bindings/clock/qcom,sm8550-gpucc.h
     include/dt-bindings/reset/qcom,sm8450-gpucc.h
+    include/dt-bindings/reset/qcom,sm8650-gpucc.h
 
 properties:
   compatible:
     enum:
       - qcom,sm8450-gpucc
       - qcom,sm8550-gpucc
+      - qcom,sm8650-gpucc
 
   clocks:
     items:
index 1bf1a41fd89c2bc1237d41f4de2b6f8f61cd2622..af16b05eac96e4894b2d5c664410ace34c8a74bd 100644 (file)
@@ -13,12 +13,16 @@ description: |
   Qualcomm TCSR clock control module provides the clocks, resets and
   power domains on SM8550
 
-  See also:: include/dt-bindings/clock/qcom,sm8550-tcsr.h
+  See also:
+  - include/dt-bindings/clock/qcom,sm8550-tcsr.h
+  - include/dt-bindings/clock/qcom,sm8650-tcsr.h
 
 properties:
   compatible:
     items:
-      - const: qcom,sm8550-tcsr
+      - enum:
+          - qcom,sm8550-tcsr
+          - qcom,sm8650-tcsr
       - const: syscon
 
   clocks:
diff --git a/Bindings/clock/qcom,sm8650-dispcc.yaml b/Bindings/clock/qcom,sm8650-dispcc.yaml
new file mode 100644 (file)
index 0000000..5e0c45c
--- /dev/null
@@ -0,0 +1,106 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8650-dispcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Display Clock & Reset Controller for SM8650
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+description: |
+  Qualcomm display clock control module provides the clocks, resets and power
+  domains on SM8650.
+
+  See also:: include/dt-bindings/clock/qcom,sm8650-dispcc.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,sm8650-dispcc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board Always On XO source
+      - description: Display's AHB clock
+      - description: sleep clock
+      - description: Byte clock from DSI PHY0
+      - description: Pixel clock from DSI PHY0
+      - description: Byte clock from DSI PHY1
+      - description: Pixel clock from DSI PHY1
+      - description: Link clock from DP PHY0
+      - description: VCO DIV clock from DP PHY0
+      - description: Link clock from DP PHY1
+      - description: VCO DIV clock from DP PHY1
+      - description: Link clock from DP PHY2
+      - description: VCO DIV clock from DP PHY2
+      - description: Link clock from DP PHY3
+      - description: VCO DIV clock from DP PHY3
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    description:
+      A phandle and PM domain specifier for the MMCX power domain.
+    maxItems: 1
+
+  required-opps:
+    description:
+      A phandle to an OPP node describing required MMCX performance point.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,sm8650-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    clock-controller@af00000 {
+      compatible = "qcom,sm8650-dispcc";
+      reg = <0x0af00000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>,
+               <&gcc GCC_DISP_AHB_CLK>,
+               <&sleep_clk>,
+               <&dsi0_phy 0>,
+               <&dsi0_phy 1>,
+               <&dsi1_phy 0>,
+               <&dsi1_phy 1>,
+               <&dp0_phy 0>,
+               <&dp0_phy 1>,
+               <&dp1_phy 0>,
+               <&dp1_phy 1>,
+               <&dp2_phy 0>,
+               <&dp2_phy 1>,
+               <&dp3_phy 0>,
+               <&dp3_phy 1>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+      power-domains = <&rpmhpd RPMHPD_MMCX>;
+      required-opps = <&rpmhpd_opp_low_svs>;
+    };
+...
diff --git a/Bindings/clock/qcom,sm8650-gcc.yaml b/Bindings/clock/qcom,sm8650-gcc.yaml
new file mode 100644 (file)
index 0000000..b54761c
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8650-gcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller on SM8650
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+description: |
+  Qualcomm global clock control module provides the clocks, resets and power
+  domains on SM8650
+
+  See also:: include/dt-bindings/clock/qcom,sm8650-gcc.h
+
+properties:
+  compatible:
+    const: qcom,sm8650-gcc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board Always On XO source
+      - description: Sleep clock source
+      - description: PCIE 0 Pipe clock source
+      - description: PCIE 1 Pipe clock source
+      - description: PCIE 1 Phy Auxiliary clock source
+      - description: UFS Phy Rx symbol 0 clock source
+      - description: UFS Phy Rx symbol 1 clock source
+      - description: UFS Phy Tx symbol 0 clock source
+      - description: USB3 Phy wrapper pipe clock source
+
+required:
+  - compatible
+  - clocks
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    clock-controller@100000 {
+      compatible = "qcom,sm8650-gcc";
+      reg = <0x00100000 0x001f4200>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>,
+               <&sleep_clk>,
+               <&pcie0_phy>,
+               <&pcie1_phy>,
+               <&pcie_1_phy_aux_clk>,
+               <&ufs_mem_phy 0>,
+               <&ufs_mem_phy 1>,
+               <&ufs_mem_phy 2>,
+               <&usb_1_qmpphy>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+...
diff --git a/Bindings/clock/qcom,x1e80100-gcc.yaml b/Bindings/clock/qcom,x1e80100-gcc.yaml
new file mode 100644 (file)
index 0000000..14a796d
--- /dev/null
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,x1e80100-gcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller on X1E80100
+
+maintainers:
+  - Rajendra Nayak <quic_rjendra@quicinc.com>
+
+description: |
+  Qualcomm global clock control module provides the clocks, resets and power
+  domains on X1E80100
+
+  See also:: include/dt-bindings/clock/qcom,x1e80100-gcc.h
+
+properties:
+  compatible:
+    const: qcom,x1e80100-gcc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Sleep clock source
+      - description: PCIe 3 pipe clock
+      - description: PCIe 4 pipe clock
+      - description: PCIe 5 pipe clock
+      - description: PCIe 6a pipe clock
+      - description: PCIe 6b pipe clock
+      - description: USB QMP Phy 0 clock source
+      - description: USB QMP Phy 1 clock source
+      - description: USB QMP Phy 2 clock source
+
+  power-domains:
+    description:
+      A phandle and PM domain specifier for the CX power domain.
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - power-domains
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    clock-controller@100000 {
+      compatible = "qcom,x1e80100-gcc";
+      reg = <0x00100000 0x200000>;
+      clocks = <&bi_tcxo_div2>,
+               <&sleep_clk>,
+               <&pcie3_phy>,
+               <&pcie4_phy>,
+               <&pcie5_phy>,
+               <&pcie6a_phy>,
+               <&pcie6b_phy>,
+               <&usb_1_ss0_qmpphy 0>,
+               <&usb_1_ss1_qmpphy 1>,
+               <&usb_1_ss2_qmpphy 2>;
+      power-domains = <&rpmhpd RPMHPD_CX>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+...
index 3afdebdb52ad4bf7508673301efd26b79e6f3a0f..af6319697b1c04bb7e4fc814a07b1670499f5886 100644 (file)
@@ -21,6 +21,15 @@ description: |
     1 -- DIF1
     2 -- DIF2
     3 -- DIF3
+  - 9FGV0841:
+    0 -- DIF0
+    1 -- DIF1
+    2 -- DIF2
+    3 -- DIF3
+    4 -- DIF4
+    5 -- DIF5
+    6 -- DIF6
+    7 -- DIF7
 
 maintainers:
   - Marek Vasut <marex@denx.de>
@@ -30,6 +39,7 @@ properties:
     enum:
       - renesas,9fgv0241
       - renesas,9fgv0441
+      - renesas,9fgv0841
 
   reg:
     description: I2C device address
diff --git a/Bindings/clock/silabs,si5351.txt b/Bindings/clock/silabs,si5351.txt
deleted file mode 100644 (file)
index bfda6af..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-Binding for Silicon Labs Si5351a/b/c programmable i2c clock generator.
-
-Reference
-[1] Si5351A/B/C Data Sheet
-    https://www.skyworksinc.com/-/media/Skyworks/SL/documents/public/data-sheets/Si5351-B.pdf
-
-The Si5351a/b/c are programmable i2c clock generators with up to 8 output
-clocks. Si5351a also has a reduced pin-count package (MSOP10) where only
-3 output clocks are accessible. The internal structure of the clock
-generators can be found in [1].
-
-==I2C device node==
-
-Required properties:
-- compatible: shall be one of the following:
-       "silabs,si5351a" - Si5351a, QFN20 package
-       "silabs,si5351a-msop" - Si5351a, MSOP10 package
-       "silabs,si5351b" - Si5351b, QFN20 package
-       "silabs,si5351c" - Si5351c, QFN20 package
-- reg: i2c device address, shall be 0x60 or 0x61.
-- #clock-cells: from common clock binding; shall be set to 1.
-- clocks: from common clock binding; list of parent clock
-  handles, shall be xtal reference clock or xtal and clkin for
-  si5351c only. Corresponding clock input names are "xtal" and
-  "clkin" respectively.
-- #address-cells: shall be set to 1.
-- #size-cells: shall be set to 0.
-
-Optional properties:
-- silabs,pll-source: pair of (number, source) for each pll. Allows
-  to overwrite clock source of pll A (number=0) or B (number=1).
-
-==Child nodes==
-
-Each of the clock outputs can be overwritten individually by
-using a child node to the I2C device node. If a child node for a clock
-output is not set, the eeprom configuration is not overwritten.
-
-Required child node properties:
-- reg: number of clock output.
-
-Optional child node properties:
-- silabs,clock-source: source clock of the output divider stage N, shall be
-  0 = multisynth N
-  1 = multisynth 0 for output clocks 0-3, else multisynth4
-  2 = xtal
-  3 = clkin (si5351c only)
-- silabs,drive-strength: output drive strength in mA, shall be one of {2,4,6,8}.
-- silabs,multisynth-source: source pll A(0) or B(1) of corresponding multisynth
-  divider.
-- silabs,pll-master: boolean, multisynth can change pll frequency.
-- silabs,pll-reset: boolean, clock output can reset its pll.
-- silabs,disable-state : clock output disable state, shall be
-  0 = clock output is driven LOW when disabled
-  1 = clock output is driven HIGH when disabled
-  2 = clock output is FLOATING (HIGH-Z) when disabled
-  3 = clock output is NEVER disabled
-
-==Example==
-
-/* 25MHz reference crystal */
-ref25: ref25M {
-       compatible = "fixed-clock";
-       #clock-cells = <0>;
-       clock-frequency = <25000000>;
-};
-
-i2c-master-node {
-
-       /* Si5351a msop10 i2c clock generator */
-       si5351a: clock-generator@60 {
-               compatible = "silabs,si5351a-msop";
-               reg = <0x60>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               #clock-cells = <1>;
-
-               /* connect xtal input to 25MHz reference */
-               clocks = <&ref25>;
-               clock-names = "xtal";
-
-               /* connect xtal input as source of pll0 and pll1 */
-               silabs,pll-source = <0 0>, <1 0>;
-
-               /*
-                * overwrite clkout0 configuration with:
-                * - 8mA output drive strength
-                * - pll0 as clock source of multisynth0
-                * - multisynth0 as clock source of output divider
-                * - multisynth0 can change pll0
-                * - set initial clock frequency of 74.25MHz
-                */
-               clkout0 {
-                       reg = <0>;
-                       silabs,drive-strength = <8>;
-                       silabs,multisynth-source = <0>;
-                       silabs,clock-source = <0>;
-                       silabs,pll-master;
-                       clock-frequency = <74250000>;
-               };
-
-               /*
-                * overwrite clkout1 configuration with:
-                * - 4mA output drive strength
-                * - pll1 as clock source of multisynth1
-                * - multisynth1 as clock source of output divider
-                * - multisynth1 can change pll1
-                */
-               clkout1 {
-                       reg = <1>;
-                       silabs,drive-strength = <4>;
-                       silabs,multisynth-source = <1>;
-                       silabs,clock-source = <0>;
-                       pll-master;
-               };
-
-               /*
-                * overwrite clkout2 configuration with:
-                * - xtal as clock source of output divider
-                */
-               clkout2 {
-                       reg = <2>;
-                       silabs,clock-source = <2>;
-               };
-       };
-};
diff --git a/Bindings/clock/silabs,si5351.yaml b/Bindings/clock/silabs,si5351.yaml
new file mode 100644 (file)
index 0000000..d3e0ec2
--- /dev/null
@@ -0,0 +1,265 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/silabs,si5351.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Silicon Labs Si5351A/B/C programmable I2C clock generators
+
+description: |
+  The Silicon Labs Si5351A/B/C are programmable I2C clock generators with up to
+  8 outputs. Si5351A also has a reduced pin-count package (10-MSOP) where only 3
+  output clocks are accessible. The internal structure of the clock generators
+  can be found in [1].
+
+  [1] Si5351A/B/C Data Sheet
+      https://www.skyworksinc.com/-/media/Skyworks/SL/documents/public/data-sheets/Si5351-B.pdf
+
+maintainers:
+  - Alvin Šipraga <alsi@bang-olufsen.dk>
+
+properties:
+  compatible:
+    enum:
+      - silabs,si5351a      # Si5351A, 20-QFN package
+      - silabs,si5351a-msop # Si5351A, 10-MSOP package
+      - silabs,si5351b      # Si5351B, 20-QFN package
+      - silabs,si5351c      # Si5351C, 20-QFN package
+
+  reg:
+    enum:
+      - 0x60
+      - 0x61
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  "#clock-cells":
+    const: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: xtal
+      - const: clkin
+
+  silabs,pll-source:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    description: |
+      A list of cell pairs containing a PLL index and its source. Allows to
+      overwrite clock source of the internal PLLs.
+    items:
+      items:
+        - description: PLL A (0) or PLL B (1)
+          enum: [ 0, 1 ]
+        - description: PLL source, XTAL (0) or CLKIN (1, Si5351C only).
+          enum: [ 0, 1 ]
+
+  silabs,pll-reset-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    minItems: 1
+    maxItems: 2
+    description: A list of cell pairs containing a PLL index and its reset mode.
+    items:
+      items:
+        - description: PLL A (0) or PLL B (1)
+          enum: [ 0, 1 ]
+        - description: |
+            Reset mode for the PLL. Mode can be one of:
+
+                0 - reset whenever PLL rate is adjusted (default mode)
+                1 - do not reset when PLL rate is adjusted
+
+            In mode 1, the PLL is only reset if the silabs,pll-reset is
+            specified in one of the clock output child nodes that also sources
+            the PLL. This mode may be preferable if output clocks are expected
+            to be adjusted without glitches.
+          enum: [ 0, 1 ]
+
+patternProperties:
+  "^clkout@[0-7]$":
+    type: object
+
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: Clock output number.
+
+      clock-frequency: true
+
+      silabs,clock-source:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: |
+          Source clock of the this output's divider stage.
+
+          0 - use multisynth N for this output, where N is the output number
+          1 - use either multisynth 0 (if output number is 0-3) or multisynth 4
+              (otherwise) for this output
+          2 - use XTAL for this output
+          3 - use CLKIN for this output (Si5351C only)
+
+      silabs,drive-strength:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [ 2, 4, 6, 8 ]
+        description: Output drive strength in mA.
+
+      silabs,multisynth-source:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [ 0, 1 ]
+        description:
+          Source PLL A (0) or B (1) for the corresponding multisynth divider.
+
+      silabs,pll-master:
+        type: boolean
+        description: |
+          The frequency of the source PLL is allowed to be changed by the
+          multisynth when setting the rate of this clock output.
+
+      silabs,pll-reset:
+        type: boolean
+        description: Reset the source PLL when enabling this clock output.
+
+      silabs,disable-state:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [ 0, 1, 2, 3 ]
+        description: |
+          Clock output disable state. The state can be one of:
+
+          0 - clock output is driven LOW when disabled
+          1 - clock output is driven HIGH when disabled
+          2 - clock output is FLOATING (HIGH-Z) when disabled
+          3 - clock output is never disabled
+
+    allOf:
+      - if:
+          properties:
+            compatible:
+              contains:
+                const: silabs,si5351a-msop
+        then:
+          properties:
+            reg:
+              maximum: 2
+        else:
+          properties:
+            reg:
+              maximum: 7
+
+      - if:
+          properties:
+            compatible:
+              contains:
+                const: silabs,si5351c
+        then:
+          properties:
+            silabs,clock-source:
+              enum: [ 0, 1, 2, 3 ]
+        else:
+          properties:
+            silabs,clock-source:
+              enum: [ 0, 1, 2 ]
+
+    required:
+      - reg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - silabs,si5351a
+              - silabs,si5351a-msop
+              - silabs,si5351b
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names:
+          maxItems: 1
+
+required:
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - "#clock-cells"
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      clock-generator@60 {
+        compatible = "silabs,si5351a-msop";
+        reg = <0x60>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        #clock-cells = <1>;
+
+        /* Connect XTAL input to 25MHz reference */
+        clocks = <&ref25>;
+        clock-names = "xtal";
+
+        /* Use XTAL input as source of PLL0 and PLL1 */
+        silabs,pll-source = <0 0>, <1 0>;
+
+        /* Don't reset PLL1 on rate adjustment */
+        silabs,pll-reset-mode = <1 1>;
+
+        /*
+         * Overwrite CLK0 configuration with:
+         * - 8 mA output drive strength
+         * - PLL0 as clock source of multisynth 0
+         * - Multisynth 0 as clock source of output divider
+         * - Multisynth 0 can change PLL0
+         * - Set initial clock frequency of 74.25MHz
+         */
+        clkout@0 {
+          reg = <0>;
+          silabs,drive-strength = <8>;
+          silabs,multisynth-source = <0>;
+          silabs,clock-source = <0>;
+          silabs,pll-master;
+          clock-frequency = <74250000>;
+        };
+
+        /*
+         * Overwrite CLK1 configuration with:
+         * - 4 mA output drive strength
+         * - PLL1 as clock source of multisynth 1
+         * - Multisynth 1 as clock source of output divider
+         * - Multisynth 1 can change PLL1
+         * - Reset PLL1 when enabling this clock output
+         */
+        clkout@1 {
+          reg = <1>;
+          silabs,drive-strength = <4>;
+          silabs,multisynth-source = <1>;
+          silabs,clock-source = <0>;
+          silabs,pll-master;
+          silabs,pll-reset;
+        };
+
+        /*
+         * Overwrite CLK2 configuration with:
+         * - XTAL as clock source of output divider
+         */
+        clkout@2 {
+          reg = <2>;
+          silabs,clock-source = <2>;
+        };
+      };
+    };
diff --git a/Bindings/clock/sophgo,cv1800-clk.yaml b/Bindings/clock/sophgo,cv1800-clk.yaml
new file mode 100644 (file)
index 0000000..c1dc246
--- /dev/null
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/sophgo,cv1800-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV1800 Series Clock Controller
+
+maintainers:
+  - Inochi Amaoto <inochiama@outlook.com>
+
+properties:
+  compatible:
+    enum:
+      - sophgo,cv1800-clk
+      - sophgo,cv1810-clk
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+    description:
+      See <dt-bindings/clock/sophgo,cv1800.h> for valid indices.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@3002000 {
+        compatible = "sophgo,cv1800-clk";
+        reg = <0x03002000 0x1000>;
+        clocks = <&osc>;
+        #clock-cells = <1>;
+    };
+
+...
diff --git a/Bindings/clock/st,stm32mp25-rcc.yaml b/Bindings/clock/st,stm32mp25-rcc.yaml
new file mode 100644 (file)
index 0000000..7732e79
--- /dev/null
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/st,stm32mp25-rcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STM32MP25 Reset Clock Controller
+
+maintainers:
+  - Gabriel Fernandez <gabriel.fernandez@foss.st.com>
+
+description: |
+  The RCC hardware block is both a reset and a clock controller.
+  RCC makes also power management (resume/supend).
+
+  See also::
+    include/dt-bindings/clock/st,stm32mp25-rcc.h
+    include/dt-bindings/reset/st,stm32mp25-rcc.h
+
+properties:
+  compatible:
+    enum:
+      - st,stm32mp25-rcc
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  clocks:
+    items:
+      - description: CK_SCMI_HSE High Speed External oscillator (8 to 48 MHz)
+      - description: CK_SCMI_HSI High Speed Internal oscillator (~ 64 MHz)
+      - description: CK_SCMI_MSI Low Power Internal oscillator (~ 4 MHz or ~ 16 MHz)
+      - description: CK_SCMI_LSE Low Speed External oscillator (32 KHz)
+      - description: CK_SCMI_LSI Low Speed Internal oscillator (~ 32 KHz)
+
+  clock-names:
+    items:
+      - const: hse
+      - const: hsi
+      - const: msi
+      - const: lse
+      - const: lsi
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - '#reset-cells'
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/st,stm32mp25-rcc.h>
+
+    rcc: clock-controller@44200000 {
+        compatible = "st,stm32mp25-rcc";
+        reg = <0x44200000 0x10000>;
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+        clock-names = "hse", "hsi", "msi", "lse", "lsi";
+        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>;
+    };
+...
index 02bd556bd91a66ab55ef3dc0208a79f3c18f6615..9d5324dc1027a30661ea7a288bc18d1a3b4ea7c1 100644 (file)
@@ -20,6 +20,7 @@ properties:
       - xlnx,clocking-wizard
       - xlnx,clocking-wizard-v5.2
       - xlnx,clocking-wizard-v6.0
+      - xlnx,versal-clk-wizard
 
 
   reg:
index 1ba687d433b123504ba284517286b09116822a8c..bef109d163a8209d1c201c0a573943d98ac76479 100644 (file)
@@ -31,11 +31,11 @@ properties:
   clocks:
     description: List of clock specifiers which are external input
       clocks to the given clock controller.
-    minItems: 3
+    minItems: 2
     maxItems: 8
 
   clock-names:
-    minItems: 3
+    minItems: 2
     maxItems: 8
 
 required:
@@ -59,15 +59,34 @@ allOf:
         clocks:
           items:
             - description: reference clock
-            - description: alternate reference clock
             - description: alternate reference clock for programmable logic
 
         clock-names:
           items:
             - const: ref
-            - const: alt_ref
             - const: pl_alt_ref
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - xlnx,versal-net-clk
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: reference clock
+            - description: alternate reference clock for programmable logic
+            - description: alternate reference clock
+
+        clock-names:
+          items:
+            - const: ref
+            - const: pl_alt_ref
+            - const: alt_ref
+
   - if:
       properties:
         compatible:
@@ -110,8 +129,8 @@ examples:
         versal_clk: clock-controller {
           #clock-cells = <1>;
           compatible = "xlnx,versal-clk";
-          clocks = <&ref>, <&alt_ref>, <&pl_alt_ref>;
-          clock-names = "ref", "alt_ref", "pl_alt_ref";
+          clocks = <&ref>,  <&pl_alt_ref>;
+          clock-names = "ref", "pl_alt_ref";
         };
       };
     };
index 7c8a3e8430d306e15dfdd4c1c7c65de7232f83a4..fb216ce68bb3579f5646b5eff39ebf524cd26a7e 100644 (file)
@@ -66,7 +66,6 @@ properties:
       Particularly, if use an output GPIO to control a VBUS regulator, should
       model it as a regulator. See bindings/regulator/fixed-regulator.yaml
 
-  # The following are optional properties for "usb-c-connector".
   power-role:
     description: Determines the power role that the Type C connector will
       support. "dual" refers to Dual Role Port (DRP).
@@ -119,30 +118,6 @@ properties:
 
   # The following are optional properties for "usb-c-connector" with power
   # delivery support.
-  source-pdos:
-    description: An array of u32 with each entry providing supported power
-      source data object(PDO), the detailed bit definitions of PDO can be found
-      in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
-      Source_Capabilities Message, the order of each entry(PDO) should follow
-      the PD spec chapter 6.4.1. Required for power source and power dual role.
-      User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
-      defined in dt-bindings/usb/pd.h.
-    minItems: 1
-    maxItems: 7
-    $ref: /schemas/types.yaml#/definitions/uint32-array
-
-  sink-pdos:
-    description: An array of u32 with each entry providing supported power sink
-      data object(PDO), the detailed bit definitions of PDO can be found in
-      "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
-      Sink Capabilities Message, the order of each entry(PDO) should follow the
-      PD spec chapter 6.4.1. Required for power sink and power dual role. User
-      can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
-      in dt-bindings/usb/pd.h.
-    minItems: 1
-    maxItems: 7
-    $ref: /schemas/types.yaml#/definitions/uint32-array
-
   sink-vdos:
     description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
       providing additional information corresponding to the product, the detailed bit
@@ -166,10 +141,43 @@ properties:
     maxItems: 6
     $ref: /schemas/types.yaml#/definitions/uint32-array
 
-  op-sink-microwatt:
-    description: Sink required operating power in microwatt, if source can't
-      offer the power, Capability Mismatch is set. Required for power sink and
-      power dual role.
+  accessory-mode-audio:
+    type: boolean
+    description: Whether the device supports Audio Adapter Accessory Mode. This
+      is only necessary if there are no other means to discover supported
+      alternative modes (e.g. through the UCSI firmware interface).
+
+  accessory-mode-debug:
+    type: boolean
+    description: Whether the device supports Debug Accessory Mode. This
+      is only necessary if there are no other means to discover supported
+      alternative modes (e.g. through the UCSI firmware interface).
+
+  altmodes:
+    type: object
+    description: List of Alternative Modes supported by the schematics on the
+      particular device. This is only necessary if there are no other means to
+      discover supported alternative modes (e.g. through the UCSI firmware
+      interface).
+
+    additionalProperties: false
+
+    patternProperties:
+      "^(displayport)$":
+        type: object
+        description:
+          A single USB-C Alternative Mode as supported by the USB-C connector logic.
+
+        additionalProperties: false
+
+        properties:
+          svid:
+            $ref: /schemas/types.yaml#/definitions/uint16
+            description: Unique value assigned by USB-IF to the Vendor / AltMode.
+            enum: [ 0xff01 ]
+          vdo:
+            $ref: /schemas/types.yaml#/definitions/uint32
+            description: VDO returned by Discover Modes USB PD command.
 
   port:
     $ref: /schemas/graph.yaml#/properties/port
@@ -231,6 +239,20 @@ properties:
       SNK_READY for non-pd link.
     type: boolean
 
+  capabilities:
+    description: A child node to contain all the selectable USB Power Delivery capabilities.
+    type: object
+
+    patternProperties:
+      "^caps-[0-9]+$":
+        description: Child nodes under "capabilities" node. Each node contains a selectable USB
+          Power Delivery capability.
+        type: object
+        $ref: "#/$defs/capabilities"
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
 dependencies:
   sink-vdos-v1: [ sink-vdos ]
   sink-vdos: [ sink-vdos-v1 ]
@@ -238,7 +260,42 @@ dependencies:
 required:
   - compatible
 
+$defs:
+  capabilities:
+    type: object
+
+    properties:
+      source-pdos:
+        description: An array of u32 with each entry providing supported power
+          source data object(PDO), the detailed bit definitions of PDO can be found
+          in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
+          Source_Capabilities Message, the order of each entry(PDO) should follow
+          the PD spec chapter 6.4.1. Required for power source and power dual role.
+          User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
+          defined in dt-bindings/usb/pd.h.
+        minItems: 1
+        maxItems: 7
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+
+      sink-pdos:
+        description: An array of u32 with each entry providing supported power sink
+          data object(PDO), the detailed bit definitions of PDO can be found in
+          "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
+          Sink Capabilities Message, the order of each entry(PDO) should follow the
+          PD spec chapter 6.4.1. Required for power sink and power dual role. User
+          can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
+          in dt-bindings/usb/pd.h.
+        minItems: 1
+        maxItems: 7
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+
+      op-sink-microwatt:
+        description: Sink required operating power in microwatt, if source can't
+          offer the power, Capability Mismatch is set. Required for power sink and
+          power dual role.
+
 allOf:
+  - $ref: "#/$defs/capabilities"
   - if:
       properties:
         compatible:
@@ -267,7 +324,7 @@ anyOf:
         - typec-power-opmode
         - new-source-frs-typec-current
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   # Micro-USB connector with HS lines routed via controller (MUIC).
@@ -289,6 +346,13 @@ examples:
             compatible = "usb-c-connector";
             label = "USB-C";
 
+            altmodes {
+                displayport {
+                    svid = /bits/ 16 <0xff01>;
+                    vdo = <0x00001c46>;
+                };
+            };
+
             ports {
                 #address-cells = <1>;
                 #size-cells = <0>;
index b3a5356f9916e92bb6a04f10c94fb136699c7239..239480ef7c30d3b50445612b0c56be728c40512c 100644 (file)
@@ -243,7 +243,64 @@ description: |+
   just supports idle_standby, an idle-states node is not required.
 
   ===========================================
-  6 - References
+  6 - Qualcomm specific STATES
+  ===========================================
+
+  Idle states have different enter/exit latency and residency values.
+  The idle states supported by the QCOM SoC are defined as -
+
+    * Standby
+    * Retention
+    * Standalone Power Collapse (Standalone PC or SPC)
+    * Power Collapse (PC)
+
+  Standby: Standby does a little more in addition to architectural clock gating.
+  When the WFI instruction is executed the ARM core would gate its internal
+  clocks. In addition to gating the clocks, QCOM cpus use this instruction as a
+  trigger to execute the SPM state machine. The SPM state machine waits for the
+  interrupt to trigger the core back in to active. This triggers the cache
+  hierarchy to enter standby states, when all cpus are idle. An interrupt brings
+  the SPM state machine out of its wait, the next step is to ensure that the
+  cache hierarchy is also out of standby, and then the cpu is allowed to resume
+  execution. This state is defined as a generic ARM WFI state by the ARM cpuidle
+  driver and is not defined in the DT. The SPM state machine should be
+  configured to execute this state by default and after executing every other
+  state below.
+
+  Retention: Retention is a low power state where the core is clock gated and
+  the memory and the registers associated with the core are retained. The
+  voltage may be reduced to the minimum value needed to keep the processor
+  registers active. The SPM should be configured to execute the retention
+  sequence and would wait for interrupt, before restoring the cpu to execution
+  state. Retention may have a slightly higher latency than Standby.
+
+  Standalone PC: A cpu can power down and warmboot if there is a sufficient time
+  between the time it enters idle and the next known wake up. SPC mode is used
+  to indicate a core entering a power down state without consulting any other
+  cpu or the system resources. This helps save power only on that core.  The SPM
+  sequence for this idle state is programmed to power down the supply to the
+  core, wait for the interrupt, restore power to the core, and ensure the
+  system state including cache hierarchy is ready before allowing core to
+  resume. Applying power and resetting the core causes the core to warmboot
+  back into Elevation Level (EL) which trampolines the control back to the
+  kernel. Entering a power down state for the cpu, needs to be done by trapping
+  into a EL. Failing to do so, would result in a crash enforced by the warm boot
+  code in the EL for the SoC. On SoCs with write-back L1 cache, the cache has to
+  be flushed in s/w, before powering down the core.
+
+  Power Collapse: This state is similar to the SPC mode, but distinguishes
+  itself in that the cpu acknowledges and permits the SoC to enter deeper sleep
+  modes. In a hierarchical power domain SoC, this means L2 and other caches can
+  be flushed, system bus, clocks - lowered, and SoC main XO clock gated and
+  voltages reduced, provided all cpus enter this state.  Since the span of low
+  power modes possible at this state is vast, the exit latency and the residency
+  of this low power mode would be considered high even though at a cpu level,
+  this essentially is cpu power down. The SPM in this state also may handshake
+  with the Resource power manager (RPM) processor in the SoC to indicate a
+  complete application processor subsystem shut down.
+
+  ===========================================
+  7 - References
   ===========================================
 
   [1] ARM Linux Kernel documentation - CPUs bindings
@@ -301,9 +358,16 @@ patternProperties:
 
     properties:
       compatible:
-        enum:
-          - arm,idle-state
-          - riscv,idle-state
+        oneOf:
+          - items:
+              - enum:
+                  - qcom,idle-state-ret
+                  - qcom,idle-state-spc
+                  - qcom,idle-state-pc
+              - const: arm,idle-state
+          - enum:
+              - arm,idle-state
+              - riscv,idle-state
 
       arm,psci-suspend-param:
         $ref: /schemas/types.yaml#/definitions/uint32
@@ -852,4 +916,13 @@ examples:
         };
     };
 
+    // Example 4 - Qualcomm SPC
+    idle-states {
+      cpu_spc: cpu-spc {
+        compatible = "qcom,idle-state-spc", "arm,idle-state";
+        entry-latency-us = <150>;
+        exit-latency-us = <200>;
+        min-residency-us = <2000>;
+      };
+    };
 ...
diff --git a/Bindings/crypto/inside-secure,safexcel.yaml b/Bindings/crypto/inside-secure,safexcel.yaml
new file mode 100644 (file)
index 0000000..ef07258
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/crypto/inside-secure,safexcel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Inside Secure SafeXcel cryptographic engine
+
+maintainers:
+  - Antoine Tenart <atenart@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: inside-secure,safexcel-eip197b
+      - const: inside-secure,safexcel-eip197d
+      - const: inside-secure,safexcel-eip97ies
+      - const: inside-secure,safexcel-eip197
+        description: Equivalent of inside-secure,safexcel-eip197b
+        deprecated: true
+      - const: inside-secure,safexcel-eip97
+        description: Equivalent of inside-secure,safexcel-eip97ies
+        deprecated: true
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 6
+
+  interrupt-names:
+    items:
+      - const: ring0
+      - const: ring1
+      - const: ring2
+      - const: ring3
+      - const: eip
+      - const: mem
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: reg
+
+required:
+  - reg
+  - interrupts
+  - interrupt-names
+
+allOf:
+  - if:
+      properties:
+        clocks:
+          minItems: 2
+    then:
+      properties:
+        clock-names:
+          minItems: 2
+      required:
+        - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    crypto@800000 {
+        compatible = "inside-secure,safexcel-eip197b";
+        reg = <0x800000 0x200000>;
+        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "ring0", "ring1", "ring2", "ring3", "eip", "mem";
+        clocks = <&cpm_syscon0 1 26>;
+        clock-names = "core";
+    };
diff --git a/Bindings/crypto/inside-secure-safexcel.txt b/Bindings/crypto/inside-secure-safexcel.txt
deleted file mode 100644 (file)
index 3bbf144..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-Inside Secure SafeXcel cryptographic engine
-
-Required properties:
-- compatible: Should be "inside-secure,safexcel-eip197b",
-             "inside-secure,safexcel-eip197d" or
-              "inside-secure,safexcel-eip97ies".
-- reg: Base physical address of the engine and length of memory mapped region.
-- interrupts: Interrupt numbers for the rings and engine.
-- interrupt-names: Should be "ring0", "ring1", "ring2", "ring3", "eip", "mem".
-
-Optional properties:
-- clocks: Reference to the crypto engine clocks, the second clock is
-          needed for the Armada 7K/8K SoCs.
-- clock-names: mandatory if there is a second clock, in this case the
-               name must be "core" for the first clock and "reg" for
-               the second one.
-
-Backward compatibility:
-Two compatibles are kept for backward compatibility, but shouldn't be used for
-new submissions:
-- "inside-secure,safexcel-eip197" is equivalent to
-  "inside-secure,safexcel-eip197b".
-- "inside-secure,safexcel-eip97" is equivalent to
-  "inside-secure,safexcel-eip97ies".
-
-Example:
-
-       crypto: crypto@800000 {
-               compatible = "inside-secure,safexcel-eip197b";
-               reg = <0x800000 0x200000>;
-               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3",
-                                 "eip";
-               clocks = <&cpm_syscon0 1 26>;
-       };
index ca4f7d1cefaa99064aea48fe0abf8b98d4f58908..09e43157cc71fe343a05020ebe9b7c2b2f0fc5d8 100644 (file)
@@ -16,6 +16,7 @@ properties:
           - qcom,sa8775p-inline-crypto-engine
           - qcom,sm8450-inline-crypto-engine
           - qcom,sm8550-inline-crypto-engine
+          - qcom,sm8650-inline-crypto-engine
       - const: qcom,inline-crypto-engine
 
   reg:
index 13070db0f70ccca500f941144d4eedf9ae2e747a..89c88004b41bf517a1933f08c28f5c1bdece6e4b 100644 (file)
@@ -21,6 +21,7 @@ properties:
               - qcom,sc7280-trng
               - qcom,sm8450-trng
               - qcom,sm8550-trng
+              - qcom,sm8650-trng
           - const: qcom,trng
 
   reg:
index 8e665d910e6e68016fd668c78cb567e1bd69de42..a48bd381063aaf8475b2919ba097494456f54f67 100644 (file)
@@ -44,10 +44,12 @@ properties:
 
       - items:
           - enum:
+              - qcom,sc7280-qce
               - qcom,sm8250-qce
               - qcom,sm8350-qce
               - qcom,sm8450-qce
               - qcom,sm8550-qce
+              - qcom,sm8650-qce
           - const: qcom,sm8150-qce
           - const: qcom,qce
 
@@ -96,6 +98,7 @@ allOf:
               - qcom,crypto-v5.4
               - qcom,ipq6018-qce
               - qcom,ipq8074-qce
+              - qcom,ipq9574-qce
               - qcom,msm8996-qce
               - qcom,sdm845-qce
     then:
@@ -129,6 +132,17 @@ allOf:
         - clocks
         - clock-names
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8150-qce
+    then:
+      properties:
+        clocks: false
+        clock-names: false
+
 required:
   - compatible
   - reg
index f201ae4af4fbd7ee377bf5719077705da0773858..2cef25215798598b8249c6fe3c20600c8d7b2aa1 100644 (file)
@@ -55,6 +55,27 @@ properties:
       - port@0
       - port@1
 
+  vcchdmipll-supply:
+    description: A 1.8V supply that powers the HDMI PLL.
+
+  vcchdmitx-supply:
+    description: A 1.8V supply that powers the HDMI TX part.
+
+  vcclvdspll-supply:
+    description: A 1.8V supply that powers the LVDS PLL.
+
+  vcclvdstx-supply:
+    description: A 1.8V supply that powers the LVDS TX part.
+
+  vccmipirx-supply:
+    description: A 1.8V supply that powers the MIPI RX part.
+
+  vccsysclk-supply:
+    description: A 1.8V supply that powers the SYSCLK.
+
+  vdd-supply:
+    description: A 1.8V supply that powers the digital part.
+
 required:
   - compatible
   - reg
index 21d995f29a1e3068be328506cf01d8f0f5d3d383..b8e9cf6ce4e61145bb6a30d90396b982449b2f08 100644 (file)
@@ -29,19 +29,22 @@ properties:
 
   audio-ports:
     description:
-      Array of 8-bit values, 2 values per DAI (Documentation/sound/soc/dai.rst).
+      Array of 2 values per DAI (Documentation/sound/soc/dai.rst).
       The implementation allows one or two DAIs.
       If two DAIs are defined, they must be of different type.
     $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    minItems: 1
+    maxItems: 2
     items:
-      minItems: 1
       items:
         - description: |
             The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
             (see include/dt-bindings/display/tda998x.h).
+          enum: [ 1, 2 ]
         - description:
             The second value defines the tda998x AP_ENA reg content when the
             DAI in question is used.
+          maximum: 0xff
 
   '#sound-dai-cells':
     enum: [ 0, 1 ]
index 7fd42c8fdc3282fdc87403a8591e817a85b7eff7..b4c28e96dd55534b9439af0bec4076f6f71e8614 100644 (file)
@@ -24,6 +24,7 @@ properties:
       - enum:
           - mediatek,mt8173-disp-aal
           - mediatek,mt8183-disp-aal
+          - mediatek,mt8195-mdp3-aal
       - items:
           - enum:
               - mediatek,mt2712-disp-aal
index f21e4409204367dd3cfd946deada11d0c54965cf..b886ca0d89ea15d2f5a76fd5e7742096365486a7 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - mediatek,mt2701-disp-color
           - mediatek,mt8167-disp-color
           - mediatek,mt8173-disp-color
+          - mediatek,mt8195-mdp3-color
       - items:
           - enum:
               - mediatek,mt7623-disp-color
index ed24b617090b065ff000d265aacf0e2547e7fd5f..8611319bed2eaf6235508177f5c867f25834e0f3 100644 (file)
@@ -34,6 +34,10 @@ properties:
           - enum:
               - mediatek,mt6795-dsi
           - const: mediatek,mt8173-dsi
+      - items:
+          - enum:
+              - mediatek,mt8195-dsi
+          - const: mediatek,mt8183-dsi
 
   reg:
     maxItems: 1
index 801fa66ae61501961f8e48ce8b98a228f704e60d..677882348eded7e65ff766fd16160030479dfe04 100644 (file)
@@ -23,7 +23,11 @@ description:
 
 properties:
   compatible:
-    const: mediatek,mt8195-disp-ethdr
+    oneOf:
+      - const: mediatek,mt8195-disp-ethdr
+      - items:
+          - const: mediatek,mt8188-disp-ethdr
+          - const: mediatek,mt8195-disp-ethdr
 
   reg:
     maxItems: 7
diff --git a/Bindings/display/mediatek/mediatek,mdp-rdma.yaml b/Bindings/display/mediatek/mediatek,mdp-rdma.yaml
deleted file mode 100644 (file)
index dd12e2f..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/display/mediatek/mediatek,mdp-rdma.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: MediaTek MDP RDMA
-
-maintainers:
-  - Chun-Kuang Hu <chunkuang.hu@kernel.org>
-  - Philipp Zabel <p.zabel@pengutronix.de>
-
-description:
-  The MediaTek MDP RDMA stands for Read Direct Memory Access.
-  It provides real time data to the back-end panel driver, such as DSI,
-  DPI and DP_INTF.
-  It contains one line buffer to store the sufficient pixel data.
-  RDMA device node must be siblings to the central MMSYS_CONFIG node.
-  For a description of the MMSYS_CONFIG binding, see
-  Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml for details.
-
-properties:
-  compatible:
-    const: mediatek,mt8195-vdo1-rdma
-
-  reg:
-    maxItems: 1
-
-  interrupts:
-    maxItems: 1
-
-  power-domains:
-    maxItems: 1
-
-  clocks:
-    items:
-      - description: RDMA Clock
-
-  iommus:
-    maxItems: 1
-
-  mediatek,gce-client-reg:
-    description:
-      The register of display function block to be set by gce. There are 4 arguments,
-      such as gce node, subsys id, offset and register size. The subsys id that is
-      mapping to the register of display function blocks is defined in the gce header
-      include/dt-bindings/gce/<chip>-gce.h of each chips.
-    $ref: /schemas/types.yaml#/definitions/phandle-array
-    items:
-      items:
-        - description: phandle of GCE
-        - description: GCE subsys id
-        - description: register offset
-        - description: register size
-    maxItems: 1
-
-required:
-  - compatible
-  - reg
-  - power-domains
-  - clocks
-  - iommus
-  - mediatek,gce-client-reg
-
-additionalProperties: false
-
-examples:
-  - |
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    #include <dt-bindings/clock/mt8195-clk.h>
-    #include <dt-bindings/power/mt8195-power.h>
-    #include <dt-bindings/gce/mt8195-gce.h>
-    #include <dt-bindings/memory/mt8195-memory-port.h>
-
-    soc {
-        #address-cells = <2>;
-        #size-cells = <2>;
-
-        rdma@1c104000 {
-            compatible = "mediatek,mt8195-vdo1-rdma";
-            reg = <0 0x1c104000 0 0x1000>;
-            interrupts = <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH 0>;
-            clocks = <&vdosys1 CLK_VDO1_MDP_RDMA0>;
-            power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
-            iommus = <&iommu_vdo M4U_PORT_L2_MDP_RDMA0>;
-            mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x4000 0x1000>;
-        };
-    };
index eead5cb8636edbf3a64ea208fbdff9348a9f7984..dae839279950bf14b0da469c096c9da6a92c1b41 100644 (file)
@@ -24,9 +24,13 @@ properties:
       - enum:
           - mediatek,mt8173-disp-merge
           - mediatek,mt8195-disp-merge
+          - mediatek,mt8195-mdp3-merge
       - items:
           - const: mediatek,mt6795-disp-merge
           - const: mediatek,mt8173-disp-merge
+      - items:
+          - const: mediatek,mt8188-disp-merge
+          - const: mediatek,mt8195-disp-merge
 
   reg:
     maxItems: 1
index 3e1069b00b56ef43a1c030eec4f5e4f7bd782887..c471a181d125bda9986c20e1e1c5e8efd2c202ad 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - mediatek,mt8173-disp-ovl
           - mediatek,mt8183-disp-ovl
           - mediatek,mt8192-disp-ovl
+          - mediatek,mt8195-mdp3-ovl
       - items:
           - enum:
               - mediatek,mt7623-disp-ovl
diff --git a/Bindings/display/mediatek/mediatek,padding.yaml b/Bindings/display/mediatek/mediatek,padding.yaml
new file mode 100644 (file)
index 0000000..be07bbd
--- /dev/null
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/mediatek/mediatek,padding.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Display Padding
+
+maintainers:
+  - Chun-Kuang Hu <chunkuang.hu@kernel.org>
+  - Philipp Zabel <p.zabel@pengutronix.de>
+
+description:
+  Padding provides ability to add pixels to width and height of a layer with
+  specified colors. Due to hardware design, Mixer in VDOSYS1 requires
+  width of a layer to be 2-pixel-align, or 4-pixel-align when ETHDR is enabled,
+  we need Padding to deal with odd width.
+  Please notice that even if the Padding is in bypass mode, settings in
+  register must be cleared to 0, or undefined behaviors could happen.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8188-disp-padding
+      - mediatek,mt8195-mdp3-padding
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Padding's clocks
+
+  mediatek,gce-client-reg:
+    description:
+      GCE (Global Command Engine) is a multi-core micro processor that helps
+      its clients to execute commands without interrupting CPU. This property
+      describes GCE client's information that is composed by 4 fields.
+      1. Phandle of the GCE (there may be several GCE processors)
+      2. Sub-system ID defined in the dt-binding like a user ID
+         (Please refer to include/dt-bindings/gce/<chip>-gce.h)
+      3. Offset from base address of the subsys you are at
+      4. Size of the register the client needs
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: Phandle of the GCE
+        - description: Subsys ID defined in the dt-binding
+        - description: Offset from base address of the subsys
+        - description: Size of register
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - power-domains
+  - clocks
+  - mediatek,gce-client-reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/mediatek,mt8188-clk.h>
+    #include <dt-bindings/power/mediatek,mt8188-power.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        padding0: padding@1c11d000 {
+            compatible = "mediatek,mt8188-disp-padding";
+            reg = <0 0x1c11d000 0 0x1000>;
+            clocks = <&vdosys1 CLK_VDO1_PADDING0>;
+            power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS1>;
+            mediatek,gce-client-reg = <&gce0 SUBSYS_1c11XXXX 0xd000 0x1000>;
+        };
+    };
index a8a5c9608598f04b22f78d0fa7dbc36c9f07326f..e4affc854f3dd264f8e76e568ac00630fff5a8e2 100644 (file)
@@ -23,6 +23,7 @@ properties:
     oneOf:
       - enum:
           - mediatek,mt8173-disp-split
+          - mediatek,mt8195-mdp3-split
       - items:
           - const: mediatek,mt6795-disp-split
           - const: mediatek,mt8173-disp-split
@@ -38,6 +39,21 @@ properties:
       the power controller specified by phandle. See
       Documentation/devicetree/bindings/power/power-domain.yaml for details.
 
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
   clocks:
     items:
       - description: SPLIT Clock
@@ -48,6 +64,17 @@ required:
   - power-domains
   - clocks
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt8195-mdp3-split
+
+    then:
+      required:
+        - mediatek,gce-client-reg
+
 additionalProperties: false
 
 examples:
index dbe398f84ffb3cd5f06df3e8f767a46be66cbe0b..ae53cbfb21932f1c8fe3f5438ce8464ff2bf2e46 100644 (file)
@@ -26,8 +26,10 @@ properties:
           - qcom,sc8280xp-edp
           - qcom,sdm845-dp
           - qcom,sm8350-dp
+          - qcom,sm8650-dp
       - items:
           - enum:
+              - qcom,sm8150-dp
               - qcom,sm8250-dp
               - qcom,sm8450-dp
               - qcom,sm8550-dp
index c6dbab65d5f7052502033811f31352f1999062fe..4219936eda5a1746419feccdbe8bd171384e32f1 100644 (file)
@@ -25,6 +25,7 @@ properties:
               - qcom,sc7180-dsi-ctrl
               - qcom,sc7280-dsi-ctrl
               - qcom,sdm660-dsi-ctrl
+              - qcom,sdm670-dsi-ctrl
               - qcom,sdm845-dsi-ctrl
               - qcom,sm6115-dsi-ctrl
               - qcom,sm6125-dsi-ctrl
@@ -35,6 +36,7 @@ properties:
               - qcom,sm8350-dsi-ctrl
               - qcom,sm8450-dsi-ctrl
               - qcom,sm8550-dsi-ctrl
+              - qcom,sm8650-dsi-ctrl
           - const: qcom,mdss-dsi-ctrl
       - enum:
           - qcom,dsi-ctrl-6g-qcm2290
@@ -333,6 +335,7 @@ allOf:
               - qcom,sm8350-dsi-ctrl
               - qcom,sm8450-dsi-ctrl
               - qcom,sm8550-dsi-ctrl
+              - qcom,sm8650-dsi-ctrl
     then:
       properties:
         clocks:
index dd6619555a126a433c1df16b7042366286d21aed..7e764eac3ef31829e745673ea91d4135921d61e5 100644 (file)
@@ -22,6 +22,7 @@ properties:
       - qcom,sm8350-dsi-phy-5nm
       - qcom,sm8450-dsi-phy-5nm
       - qcom,sm8550-dsi-phy-4nm
+      - qcom,sm8650-dsi-phy-4nm
 
   reg:
     items:
index f69196e4cc7657868cd926508327e9b0ac037d9f..c6305a6e033467b9a089d16aad27128f49427e78 100644 (file)
@@ -61,17 +61,27 @@ properties:
 
   ranges: true
 
+  # This is not a perfect description, but it's impossible to discern and match
+  # the entries like we do with interconnect-names
   interconnects:
     minItems: 1
     items:
       - description: Interconnect path from mdp0 (or a single mdp) port to the data bus
       - description: Interconnect path from mdp1 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    minItems: 1
-    items:
-      - const: mdp0-mem
-      - const: mdp1-mem
+    oneOf:
+      - minItems: 1
+        items:
+          - const: mdp0-mem
+          - const: cpu-cfg
+
+      - minItems: 2
+        items:
+          - const: mdp0-mem
+          - const: mdp1-mem
+          - const: cpu-cfg
 
   resets:
     items:
index 5ad155612b6cf5df7cf40a5f0a3ca7aa55e9e080..f0cdb54226885179e38eedc5050298adc5c95bf9 100644 (file)
@@ -36,10 +36,14 @@ properties:
     maxItems: 2
 
   interconnects:
-    maxItems: 1
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 1
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
@@ -56,7 +60,9 @@ patternProperties:
 
     properties:
       compatible:
-        const: qcom,dsi-ctrl-6g-qcm2290
+        items:
+          - const: qcom,qcm2290-dsi-ctrl
+          - const: qcom,mdss-dsi-ctrl
 
   "^phy@[0-9a-f]+$":
     type: object
@@ -96,8 +102,10 @@ examples:
         interrupt-controller;
         #interrupt-cells = <1>;
 
-        interconnects = <&mmrt_virt MASTER_MDP0 &bimc SLAVE_EBI1>;
-        interconnect-names = "mdp0-mem";
+        interconnects = <&mmrt_virt MASTER_MDP0 &bimc SLAVE_EBI1>,
+                        <&bimc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>;
+        interconnect-names = "mdp0-mem",
+                             "cpu-cfg";
 
         iommus = <&apps_smmu 0x420 0x2>,
                  <&apps_smmu 0x421 0x0>;
@@ -136,7 +144,8 @@ examples:
         };
 
         dsi@5e94000 {
-            compatible = "qcom,dsi-ctrl-6g-qcm2290";
+            compatible = "qcom,qcm2290-dsi-ctrl",
+                         "qcom,mdss-dsi-ctrl";
             reg = <0x05e94000 0x400>;
             reg-names = "dsi_ctrl";
 
index 3432a2407caa644169bfd12e2f2268105391f1e0..7a0555b15ddf1e1cd891db6e324654cd24bc7613 100644 (file)
@@ -36,10 +36,14 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 1
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 1
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
@@ -106,8 +110,10 @@ examples:
         interrupt-controller;
         #interrupt-cells = <1>;
 
-        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>;
-        interconnect-names = "mdp0-mem";
+        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>,
+                        <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>;
+        interconnect-names = "mdp0-mem",
+                             "cpu-cfg";
 
         iommus = <&apps_smmu 0x800 0x2>;
         ranges;
index bbb727831fcabb135477bbe98bf410ef6cc99d1c..2947f27e0585216ca0e1eab6a79afcb21323b201 100644 (file)
@@ -36,10 +36,14 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 1
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 1
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
@@ -118,8 +122,10 @@ examples:
         interrupt-controller;
         #interrupt-cells = <1>;
 
-        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>;
-        interconnect-names = "mdp0-mem";
+        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>,
+                        <&gem_noc MASTER_APPSS_PROC &cnoc2 SLAVE_DISPLAY_CFG>;
+        interconnect-names = "mdp0-mem",
+                             "cpu-cfg";
 
         iommus = <&apps_smmu 0x900 0x402>;
         ranges;
diff --git a/Bindings/display/msm/qcom,sdm670-mdss.yaml b/Bindings/display/msm/qcom,sdm670-mdss.yaml
new file mode 100644 (file)
index 0000000..7dc2693
--- /dev/null
@@ -0,0 +1,292 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,sdm670-mdss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDM670 Display MDSS
+
+maintainers:
+  - Richard Acayan <mailingradian@gmail.com>
+
+description:
+  SDM670 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
+  like DPU display controller, DSI and DP interfaces etc.
+
+$ref: /schemas/display/msm/mdss-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sdm670-mdss
+
+  clocks:
+    items:
+      - description: Display AHB clock from gcc
+      - description: Display core clock
+
+  clock-names:
+    items:
+      - const: iface
+      - const: core
+
+  iommus:
+    maxItems: 2
+
+  interconnects:
+    maxItems: 2
+
+  interconnect-names:
+    maxItems: 2
+
+patternProperties:
+  "^display-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        const: qcom,sdm670-dpu
+
+  "^displayport-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        const: qcom,sdm670-dp
+
+  "^dsi@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        contains:
+          const: qcom,sdm670-dsi-ctrl
+
+  "^phy@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        const: qcom,dsi-phy-10nm
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,dispcc-sdm845.h>
+    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interconnect/qcom,sdm670-rpmh.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+
+    display-subsystem@ae00000 {
+        compatible = "qcom,sdm670-mdss";
+        reg = <0x0ae00000 0x1000>;
+        reg-names = "mdss";
+        power-domains = <&dispcc MDSS_GDSC>;
+
+        clocks = <&gcc GCC_DISP_AHB_CLK>,
+                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
+        clock-names = "iface", "core";
+
+        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        interconnects = <&mmss_noc MASTER_MDP_PORT0 0 &mem_noc SLAVE_EBI_CH0 0>,
+                        <&mmss_noc MASTER_MDP_PORT1 0 &mem_noc SLAVE_EBI_CH0 0>;
+        interconnect-names = "mdp0-mem", "mdp1-mem";
+
+        iommus = <&apps_smmu 0x880 0x8>,
+                 <&apps_smmu 0xc80 0x8>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+
+        display-controller@ae01000 {
+            compatible = "qcom,sdm670-dpu";
+            reg = <0x0ae01000 0x8f000>,
+                  <0x0aeb0000 0x2008>;
+            reg-names = "mdp", "vbif";
+
+            clocks = <&gcc GCC_DISP_AXI_CLK>,
+                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                     <&dispcc DISP_CC_MDSS_AXI_CLK>,
+                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+            clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <0>;
+            power-domains = <&rpmhpd SDM670_CX>;
+            operating-points-v2 = <&mdp_opp_table>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dpu_intf1_out: endpoint {
+                        remote-endpoint = <&mdss_dsi0_in>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dpu_intf2_out: endpoint {
+                        remote-endpoint = <&mdss_dsi1_in>;
+                    };
+                };
+            };
+        };
+
+        dsi@ae94000 {
+            compatible = "qcom,sdm670-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae94000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <4>;
+
+            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                     <&dispcc DISP_CC_MDSS_AXI_CLK>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
+                              <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
+            assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd SDM670_CX>;
+
+            phys = <&mdss_dsi0_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    mdss_dsi0_in: endpoint {
+                        remote-endpoint = <&dpu_intf1_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    mdss_dsi0_out: endpoint {
+                    };
+                };
+            };
+        };
+
+        mdss_dsi0_phy: phy@ae94400 {
+            compatible = "qcom,dsi-phy-10nm";
+            reg = <0x0ae94400 0x200>,
+                  <0x0ae94600 0x280>,
+                  <0x0ae94a00 0x1e0>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface", "ref";
+            vdds-supply = <&vreg_dsi_phy>;
+        };
+
+        dsi@ae96000 {
+            compatible = "qcom,sdm670-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae96000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <5>;
+
+            clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
+                     <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
+                     <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
+                     <&dispcc DISP_CC_MDSS_ESC1_CLK>,
+                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                     <&dispcc DISP_CC_MDSS_AXI_CLK>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
+                              <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
+            assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd SDM670_CX>;
+
+            phys = <&dsi1_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    mdss_dsi1_in: endpoint {
+                        remote-endpoint = <&dpu_intf2_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    mdss_dsi1_out: endpoint {
+                    };
+                };
+            };
+        };
+
+        mdss_dsi1_phy: phy@ae96400 {
+            compatible = "qcom,dsi-phy-10nm";
+            reg = <0x0ae96400 0x200>,
+                  <0x0ae96600 0x280>,
+                  <0x0ae96a00 0x10e>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface", "ref";
+            vdds-supply = <&vreg_dsi_phy>;
+        };
+    };
+...
index b917064bdf334249332780d38abd9a3b34021ec8..dc11fd421a27fa153125c68c1104467a9e413475 100644 (file)
@@ -13,7 +13,9 @@ $ref: /schemas/display/msm/dpu-common.yaml#
 
 properties:
   compatible:
-    const: qcom,sdm845-dpu
+    enum:
+      - qcom,sdm670-dpu
+      - qcom,sdm845-dpu
 
   reg:
     items:
index dde5c2acead5d1fe06757db3ca541b5c15f2765f..309de1953c88fc9e0d0496f2188117a5945b3d6a 100644 (file)
@@ -29,6 +29,16 @@ properties:
   iommus:
     maxItems: 2
 
+  interconnects:
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
+
+  interconnect-names:
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
+
 patternProperties:
   "^display-controller@[0-9a-f]+$":
     type: object
index 671c2c2aa896590f06720ef681fcebb99a291c96..3deb9dc81c9c39af39ee3e16f38f2e78aa94ac72 100644 (file)
@@ -35,10 +35,14 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 2
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 2
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
index e1dcb453762ecf6565287117212adc6068d67fbb..c9ba1fae80425e3d3cd425c83b8343c61c1a92f8 100644 (file)
@@ -35,10 +35,14 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 2
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 2
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
index b15c3950f09dbb14e68464519fd1e3f4351f9824..8e8a288d318c34d8247abe0705f81c175fb15d99 100644 (file)
@@ -35,10 +35,14 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 2
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
 
   interconnect-names:
-    maxItems: 2
+    items:
+      - const: mdp0-mem
+      - const: cpu-cfg
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
index a2a8be7f64a9c1089329b5c8051bb204363e598a..c0d6a4fdff97e37f31ecc763347497aea9450780 100644 (file)
@@ -69,7 +69,7 @@ patternProperties:
 
     properties:
       compatible:
-        const: qcom,dsi-phy-7nm
+        const: qcom,dsi-phy-7nm-8150
 
 unevaluatedProperties: false
 
@@ -247,7 +247,7 @@ examples:
         };
 
         dsi0_phy: phy@ae94400 {
-            compatible = "qcom,dsi-phy-7nm";
+            compatible = "qcom,dsi-phy-7nm-8150";
             reg = <0x0ae94400 0x200>,
                   <0x0ae94600 0x280>,
                   <0x0ae94900 0x260>;
@@ -318,7 +318,7 @@ examples:
         };
 
         dsi1_phy: phy@ae96400 {
-            compatible = "qcom,dsi-phy-7nm";
+            compatible = "qcom,dsi-phy-7nm-8150";
             reg = <0x0ae96400 0x200>,
                   <0x0ae96600 0x280>,
                   <0x0ae96900 0x260>;
index 994975909fea54601561c5730d29c169c464b516..51368cda7b2fe764aed4cbf815d18f5476045cff 100644 (file)
@@ -52,6 +52,16 @@ patternProperties:
       compatible:
         const: qcom,sm8250-dpu
 
+  "^displayport-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        items:
+          - const: qcom,sm8250-dp
+          - const: qcom,sm8350-dp
+
   "^dsi@[0-9a-f]+$":
     type: object
     additionalProperties: true
index 001b26e653012098c34fe26842d481a84d3d9716..747a2e9665f4fd7805a2269f4cb5916fdc60522c 100644 (file)
@@ -30,10 +30,10 @@ properties:
     maxItems: 1
 
   interconnects:
-    maxItems: 2
+    maxItems: 3
 
   interconnect-names:
-    maxItems: 2
+    maxItems: 3
 
 patternProperties:
   "^display-controller@[0-9a-f]+$":
@@ -91,9 +91,12 @@ examples:
         reg = <0x0ae00000 0x1000>;
         reg-names = "mdss";
 
-        interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>,
-                        <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>;
-        interconnect-names = "mdp0-mem", "mdp1-mem";
+        interconnects = <&mmss_noc MASTER_MDP_DISP &mc_virt SLAVE_EBI1_DISP>,
+                        <&mmss_noc MASTER_MDP_DISP &mc_virt SLAVE_EBI1_DISP>,
+                        <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>;
+        interconnect-names = "mdp0-mem",
+                             "mdp1-mem",
+                             "cpu-cfg";
 
         resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
 
diff --git a/Bindings/display/msm/qcom,sm8650-dpu.yaml b/Bindings/display/msm/qcom,sm8650-dpu.yaml
new file mode 100644 (file)
index 0000000..a01d15a
--- /dev/null
@@ -0,0 +1,127 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,sm8650-dpu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM8650 Display DPU
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+$ref: /schemas/display/msm/dpu-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sm8650-dpu
+
+  reg:
+    items:
+      - description: Address offset and size for mdp register set
+      - description: Address offset and size for vbif register set
+
+  reg-names:
+    items:
+      - const: mdp
+      - const: vbif
+
+  clocks:
+    items:
+      - description: Display hf axi
+      - description: Display MDSS ahb
+      - description: Display lut
+      - description: Display core
+      - description: Display vsync
+
+  clock-names:
+    items:
+      - const: nrt_bus
+      - const: iface
+      - const: lut
+      - const: core
+      - const: vsync
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    display-controller@ae01000 {
+        compatible = "qcom,sm8650-dpu";
+        reg = <0x0ae01000 0x8f000>,
+              <0x0aeb0000 0x2008>;
+        reg-names = "mdp", "vbif";
+
+        clocks = <&gcc_axi_clk>,
+                 <&dispcc_ahb_clk>,
+                 <&dispcc_mdp_lut_clk>,
+                 <&dispcc_mdp_clk>,
+                 <&dispcc_vsync_clk>;
+        clock-names = "nrt_bus",
+                      "iface",
+                      "lut",
+                      "core",
+                      "vsync";
+
+        assigned-clocks = <&dispcc_vsync_clk>;
+        assigned-clock-rates = <19200000>;
+
+        operating-points-v2 = <&mdp_opp_table>;
+        power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+        interrupt-parent = <&mdss>;
+        interrupts = <0>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            port@0 {
+                reg = <0>;
+                dpu_intf1_out: endpoint {
+                    remote-endpoint = <&dsi0_in>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                dpu_intf2_out: endpoint {
+                    remote-endpoint = <&dsi1_in>;
+                };
+            };
+        };
+
+        mdp_opp_table: opp-table {
+            compatible = "operating-points-v2";
+
+            opp-200000000 {
+                opp-hz = /bits/ 64 <200000000>;
+                required-opps = <&rpmhpd_opp_low_svs>;
+            };
+
+            opp-325000000 {
+                opp-hz = /bits/ 64 <325000000>;
+                required-opps = <&rpmhpd_opp_svs>;
+            };
+
+            opp-375000000 {
+                opp-hz = /bits/ 64 <375000000>;
+                required-opps = <&rpmhpd_opp_svs_l1>;
+            };
+
+            opp-514000000 {
+                opp-hz = /bits/ 64 <514000000>;
+                required-opps = <&rpmhpd_opp_nom>;
+            };
+        };
+    };
+...
diff --git a/Bindings/display/msm/qcom,sm8650-mdss.yaml b/Bindings/display/msm/qcom,sm8650-mdss.yaml
new file mode 100644 (file)
index 0000000..bd11119
--- /dev/null
@@ -0,0 +1,328 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM8650 Display MDSS
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+description:
+  SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
+  DPU display controller, DSI and DP interfaces etc.
+
+$ref: /schemas/display/msm/mdss-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sm8650-mdss
+
+  clocks:
+    items:
+      - description: Display AHB
+      - description: Display hf AXI
+      - description: Display core
+
+  iommus:
+    maxItems: 1
+
+  interconnects:
+    maxItems: 2
+
+  interconnect-names:
+    maxItems: 2
+
+patternProperties:
+  "^display-controller@[0-9a-f]+$":
+    type: object
+    properties:
+      compatible:
+        const: qcom,sm8650-dpu
+
+  "^displayport-controller@[0-9a-f]+$":
+    type: object
+    properties:
+      compatible:
+        const: qcom,sm8650-dp
+
+  "^dsi@[0-9a-f]+$":
+    type: object
+    properties:
+      compatible:
+        items:
+          - const: qcom,sm8650-dsi-ctrl
+          - const: qcom,mdss-dsi-ctrl
+
+  "^phy@[0-9a-f]+$":
+    type: object
+    properties:
+      compatible:
+        const: qcom,sm8650-dsi-phy-4nm
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    display-subsystem@ae00000 {
+        compatible = "qcom,sm8650-mdss";
+        reg = <0x0ae00000 0x1000>;
+        reg-names = "mdss";
+
+        resets = <&dispcc_core_bcr>;
+
+        power-domains = <&dispcc_gdsc>;
+
+        clocks = <&gcc_ahb_clk>,
+                 <&gcc_axi_clk>,
+                 <&dispcc_mdp_clk>;
+        clock-names = "bus", "nrt_bus", "core";
+
+        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        iommus = <&apps_smmu 0x1c00 0x2>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+
+        display-controller@ae01000 {
+            compatible = "qcom,sm8650-dpu";
+            reg = <0x0ae01000 0x8f000>,
+                  <0x0aeb0000 0x2008>;
+            reg-names = "mdp", "vbif";
+
+            clocks = <&gcc_axi_clk>,
+                     <&dispcc_ahb_clk>,
+                     <&dispcc_mdp_lut_clk>,
+                     <&dispcc_mdp_clk>,
+                     <&dispcc_mdp_vsync_clk>;
+            clock-names = "nrt_bus",
+                          "iface",
+                          "lut",
+                          "core",
+                          "vsync";
+
+            assigned-clocks = <&dispcc_mdp_vsync_clk>;
+            assigned-clock-rates = <19200000>;
+
+            operating-points-v2 = <&mdp_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+            interrupt-parent = <&mdss>;
+            interrupts = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dpu_intf1_out: endpoint {
+                        remote-endpoint = <&dsi0_in>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dpu_intf2_out: endpoint {
+                        remote-endpoint = <&dsi1_in>;
+                    };
+                };
+            };
+
+            mdp_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-200000000 {
+                    opp-hz = /bits/ 64 <200000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-325000000 {
+                    opp-hz = /bits/ 64 <325000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-375000000 {
+                    opp-hz = /bits/ 64 <375000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+
+                opp-514000000 {
+                    opp-hz = /bits/ 64 <514000000>;
+                    required-opps = <&rpmhpd_opp_nom>;
+                };
+            };
+        };
+
+        dsi@ae94000 {
+            compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae94000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <4>;
+
+            clocks = <&dispc_byte_clk>,
+                     <&dispcc_intf_clk>,
+                     <&dispcc_pclk>,
+                     <&dispcc_esc_clk>,
+                     <&dispcc_ahb_clk>,
+                     <&gcc_bus_clk>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+
+            assigned-clocks = <&dispcc_byte_clk>,
+                              <&dispcc_pclk>;
+            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+            phys = <&dsi0_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dsi0_in: endpoint {
+                        remote-endpoint = <&dpu_intf1_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dsi0_out: endpoint {
+                    };
+                };
+            };
+
+            dsi_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-187500000 {
+                    opp-hz = /bits/ 64 <187500000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-300000000 {
+                    opp-hz = /bits/ 64 <300000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-358000000 {
+                    opp-hz = /bits/ 64 <358000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+            };
+        };
+
+        dsi0_phy: phy@ae94400 {
+            compatible = "qcom,sm8650-dsi-phy-4nm";
+            reg = <0x0ae95000 0x200>,
+                  <0x0ae95200 0x280>,
+                  <0x0ae95500 0x400>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc_iface_clk>,
+                     <&rpmhcc_ref_clk>;
+            clock-names = "iface", "ref";
+        };
+
+        dsi@ae96000 {
+            compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae96000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <5>;
+
+            clocks = <&dispc_byte_clk>,
+                     <&dispcc_intf_clk>,
+                     <&dispcc_pclk>,
+                     <&dispcc_esc_clk>,
+                     <&dispcc_ahb_clk>,
+                     <&gcc_bus_clk>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+
+            assigned-clocks = <&dispcc_byte_clk>,
+                              <&dispcc_pclk>;
+            assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+            phys = <&dsi1_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dsi1_in: endpoint {
+                        remote-endpoint = <&dpu_intf2_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dsi1_out: endpoint {
+                    };
+                };
+            };
+        };
+
+        dsi1_phy: phy@ae96400 {
+            compatible = "qcom,sm8650-dsi-phy-4nm";
+            reg = <0x0ae97000 0x200>,
+                  <0x0ae97200 0x280>,
+                  <0x0ae97500 0x400>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc_iface_clk>,
+                     <&rpmhcc_ref_clk>;
+            clock-names = "iface", "ref";
+        };
+    };
+...
diff --git a/Bindings/display/panel/fascontek,fs035vg158.yaml b/Bindings/display/panel/fascontek,fs035vg158.yaml
new file mode 100644 (file)
index 0000000..d13c4bd
--- /dev/null
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/fascontek,fs035vg158.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Fascontek FS035VG158 3.5" (640x480 pixels) 24-bit IPS LCD panel
+
+maintainers:
+  - John Watts <contact@jookia.org>
+
+allOf:
+  - $ref: panel-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    const: fascontek,fs035vg158
+
+  spi-3wire: true
+
+required:
+  - compatible
+  - reg
+  - port
+  - power-supply
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        panel@0 {
+            compatible = "fascontek,fs035vg158";
+            reg = <0>;
+
+            spi-3wire;
+            spi-max-frequency = <3125000>;
+
+            reset-gpios = <&gpe 2 GPIO_ACTIVE_LOW>;
+
+            backlight = <&backlight>;
+            power-supply = <&vcc>;
+
+            port {
+                panel_input: endpoint {
+                    remote-endpoint = <&panel_output>;
+                };
+            };
+        };
+    };
index ffb35288ffbb4ee2be6daa3afd7a528febd8d059..916bb7f94206293bf9d7584a1dc77e482cc91ee6 100644 (file)
@@ -23,6 +23,7 @@ properties:
     items:
       - enum:
           - hannstar,hsd060bhw4
+          - powkiddy,x55-panel
       - const: himax,hx8394
 
   reg: true
@@ -31,6 +32,8 @@ properties:
 
   backlight: true
 
+  rotation: true
+
   port: true
 
   vcc-supply:
diff --git a/Bindings/display/panel/ilitek,ili9805.yaml b/Bindings/display/panel/ilitek,ili9805.yaml
new file mode 100644 (file)
index 0000000..f4f91f9
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/ilitek,ili9805.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ilitek ILI9805 based MIPI-DSI panels
+
+maintainers:
+  - Michael Trimarchi <michael@amarulasolutions.com>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - giantplus,gpm1790a0
+          - tianma,tm041xdhg01
+      - const: ilitek,ili9805
+
+  avdd-supply: true
+  dvdd-supply: true
+  reg: true
+
+required:
+  - compatible
+  - avdd-supply
+  - dvdd-supply
+  - reg
+  - reset-gpios
+  - port
+  - backlight
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "giantplus,gpm1790a0", "ilitek,ili9805";
+            reg = <0>;
+            avdd-supply = <&avdd_display>;
+            dvdd-supply = <&dvdd_display>;
+            reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL05 */
+            backlight = <&backlight>;
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&mipi_dsi_out>;
+                };
+            };
+        };
+    };
+
+...
index e7ab6224b52e09437207a7a6bcd2d0af2bc31cd5..b1e624be3e3349e08e8d2784a4a258e0718b9e1a 100644 (file)
@@ -16,6 +16,7 @@ properties:
   compatible:
     items:
       - enum:
+          - ampire,am8001280g
           - bananapi,lhr050h41
           - feixin,k101-im2byl02
           - tdo,tl050hdv35
index ebdca5f5a00117299833abf8e535ce965139c19a..7a55961e1a3d3509512e85407bcb28ad1533f029 100644 (file)
@@ -18,16 +18,12 @@ properties:
   compatible:
     const: leadtek,ltk035c5444t
 
-  backlight: true
-  port: true
-  power-supply: true
-  reg: true
-  reset-gpios: true
-
   spi-3wire: true
 
 required:
   - compatible
+  - reg
+  - port
   - power-supply
   - reset-gpios
 
index cce775a87f8717a6973711bce2fea261577b356a..7a634fbc465e042943d499397f502cec0d9fdd35 100644 (file)
@@ -21,7 +21,7 @@ properties:
       - enum:
           - anbernic,rg351v-panel
           - anbernic,rg353p-panel
-          - anbernic,rg353v-panel
+          - powkiddy,rk2023-panel
       - const: newvision,nv3051d
 
   reg: true
index a5a596ff8e7521bbe3ee3262dc97fca7c0a4340d..716ece5f397842f3b2b16dd402698ce509239f51 100644 (file)
@@ -33,6 +33,8 @@ properties:
 
         # AU Optronics Corporation 13.3" FHD (1920x1080) TFT LCD panel
       - auo,g133han01
+        # AU Optronics Corporation 15.6" FHD (1920x1080) TFT LCD panel
+      - auo,g156han04
         # AU Optronics Corporation 18.5" FHD (1920x1080) TFT LCD panel
       - auo,g185han01
         # AU Optronics Corporation 19.0" (1280x1024) TFT LCD panel
index 11422af3477e58749fca386610186f9c714dfff0..634a10c6f2ddddb125e72cf6929410c8481b4671 100644 (file)
@@ -73,6 +73,8 @@ properties:
       - auo,t215hvn01
         # Shanghai AVIC Optoelectronics 7" 1024x600 color TFT-LCD panel
       - avic,tm070ddh03
+        # BOE BP101WX1-100 10.1" WXGA (1280x800) LVDS panel
+      - boe,bp101wx1-100
         # BOE EV121WXM-N10-1850 12.1" WXGA (1280x800) TFT LCD panel
       - boe,ev121wxm-n10-1850
         # BOE HV070WSA-100 7.01" WSVGA TFT LCD panel
@@ -144,6 +146,8 @@ properties:
       - edt,etmv570g2dhu
         # E Ink VB3300-KCA
       - eink,vb3300-kca
+        # Evervision Electronics Co. Ltd. VGG644804 5.7" VGA TFT LCD Panel
+      - evervision,vgg644804
         # Evervision Electronics Co. Ltd. VGG804821 5.0" WVGA TFT LCD Panel
       - evervision,vgg804821
         # Foxlink Group 5" WVGA TFT LCD panel
index 4dc0cd4a6a7722e1dc3a249724637b970e9f03b8..b348f5bf0a980942bc1164a79e33a36e9424b455 100644 (file)
@@ -27,6 +27,7 @@ properties:
   compatible:
     items:
       - enum:
+          - anbernic,rg-arc-panel
           - densitron,dmt028vghmcmi-1a
           - elida,kd50t048a
           - techstar,ts8550b
diff --git a/Bindings/display/panel/synaptics,r63353.yaml b/Bindings/display/panel/synaptics,r63353.yaml
new file mode 100644 (file)
index 0000000..e5617d1
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/synaptics,r63353.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synaptics R63353 based MIPI-DSI panels
+
+maintainers:
+  - Michael Trimarchi <michael@amarulasolutions.com>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - sharp,ls068b3sx02
+      - const: syna,r63353
+
+  avdd-supply: true
+  dvdd-supply: true
+  reg: true
+
+required:
+  - compatible
+  - avdd-supply
+  - dvdd-supply
+  - reg
+  - reset-gpios
+  - port
+  - backlight
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "sharp,ls068b3sx02", "syna,r63353";
+            reg = <0>;
+            avdd-supply = <&avdd_display>;
+            dvdd-supply = <&dvdd_display>;
+            reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL05 */
+            backlight = <&backlight>;
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&mipi_dsi_out>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/display/rockchip/inno_hdmi-rockchip.txt b/Bindings/display/rockchip/inno_hdmi-rockchip.txt
deleted file mode 100644 (file)
index cec2171..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Rockchip specific extensions to the Innosilicon HDMI
-================================
-
-Required properties:
-- compatible:
-       "rockchip,rk3036-inno-hdmi";
-- reg:
-       Physical base address and length of the controller's registers.
-- clocks, clock-names:
-       Phandle to hdmi controller clock, name should be "pclk"
-- interrupts:
-       HDMI interrupt number
-- ports:
-       Contain one port node with endpoint definitions as defined in
-       Documentation/devicetree/bindings/graph.txt.
-- pinctrl-0, pinctrl-name:
-       Switch the iomux of HPD/CEC pins to HDMI function.
-
-Example:
-hdmi: hdmi@20034000 {
-       compatible = "rockchip,rk3036-inno-hdmi";
-       reg = <0x20034000 0x4000>;
-       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-       clocks = <&cru  PCLK_HDMI>;
-       clock-names = "pclk";
-       pinctrl-names = "default";
-       pinctrl-0 = <&hdmi_ctl>;
-
-       hdmi_in: port {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               hdmi_in_lcdc: endpoint@0 {
-                       reg = <0>;
-                       remote-endpoint = <&lcdc_out_hdmi>;
-               };
-       };
-};
-
-&pinctrl {
-       hdmi {
-               hdmi_ctl: hdmi-ctl {
-                       rockchip,pins = <1 8  RK_FUNC_1 &pcfg_pull_none>,
-                                       <1 9  RK_FUNC_1 &pcfg_pull_none>,
-                                       <1 10 RK_FUNC_1 &pcfg_pull_none>,
-                                       <1 11 RK_FUNC_1 &pcfg_pull_none>;
-               };
-       };
-
-};
diff --git a/Bindings/display/rockchip/rockchip,inno-hdmi.yaml b/Bindings/display/rockchip/rockchip,inno-hdmi.yaml
new file mode 100644 (file)
index 0000000..be78dcf
--- /dev/null
@@ -0,0 +1,139 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/rockchip/rockchip,inno-hdmi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip Innosilicon HDMI controller
+
+maintainers:
+  - Sandy Huang <hjc@rock-chips.com>
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk3036-inno-hdmi
+      - rockchip,rk3128-inno-hdmi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    items:
+      - description: The HDMI controller main clock
+      - description: The HDMI PHY reference clock
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: pclk
+      - const: ref
+
+  power-domains:
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          Port node with one endpoint connected to a vop node.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          Port node with one endpoint connected to a hdmi-connector node.
+
+    required:
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - pinctrl-0
+  - pinctrl-names
+  - ports
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3036-inno-hdmi
+
+    then:
+      properties:
+        power-domains: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3128-inno-hdmi
+
+    then:
+      properties:
+        clocks:
+          minItems: 2
+        clock-names:
+          minItems: 2
+      required:
+        - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3036-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/pinctrl/rockchip.h>
+    hdmi: hdmi@20034000 {
+      compatible = "rockchip,rk3036-inno-hdmi";
+      reg = <0x20034000 0x4000>;
+      interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&cru  PCLK_HDMI>;
+      clock-names = "pclk";
+      pinctrl-names = "default";
+      pinctrl-0 = <&hdmi_ctl>;
+
+      ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hdmi_in: port@0 {
+          reg = <0>;
+          hdmi_in_vop: endpoint {
+            remote-endpoint = <&vop_out_hdmi>;
+          };
+        };
+
+        hdmi_out: port@1 {
+          reg = <1>;
+          hdmi_out_con: endpoint {
+            remote-endpoint = <&hdmi_con_in>;
+          };
+        };
+      };
+    };
+
+    pinctrl {
+      hdmi {
+        hdmi_ctl: hdmi-ctl {
+          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>,
+                          <1 RK_PB1 1 &pcfg_pull_none>,
+                          <1 RK_PB2 1 &pcfg_pull_none>,
+                          <1 RK_PB3 1 &pcfg_pull_none>;
+        };
+      };
+    };
index b60b90472d42e5d3711ebcd5d1622ddc794cdd51..2531726af306bd388c00c3c0a1785b2c7367e2bd 100644 (file)
@@ -8,8 +8,8 @@ title: Rockchip SoC display controller (VOP2)
 
 description:
   VOP2 (Video Output Processor v2) is the display controller for the Rockchip
-  series of SoCs which transfers the image data from a video memory
-  buffer to an external LCD interface.
+  series of SoCs which transfers the image data from a video memory buffer to
+  an external LCD interface.
 
 maintainers:
   - Sandy Huang <hjc@rock-chips.com>
@@ -20,6 +20,7 @@ properties:
     enum:
       - rockchip,rk3566-vop
       - rockchip,rk3568-vop
+      - rockchip,rk3588-vop
 
   reg:
     items:
@@ -27,8 +28,8 @@ properties:
           Must contain one entry corresponding to the base address and length
           of the register space.
       - description:
-          Can optionally contain a second entry corresponding to
-          the CRTC gamma LUT address.
+          Can optionally contain a second entry corresponding to the CRTC gamma
+          LUT address.
 
   reg-names:
     items:
@@ -41,45 +42,63 @@ properties:
       The VOP interrupt is shared by several interrupt sources, such as
       frame start (VSYNC), line flag and other status interrupts.
 
+  # See compatible-specific constraints below.
   clocks:
+    minItems: 5
     items:
-      - description: Clock for ddr buffer transfer.
-      - description: Clock for the ahb bus to R/W the phy regs.
+      - description: Clock for ddr buffer transfer via axi.
+      - description: Clock for the ahb bus to R/W the regs.
       - description: Pixel clock for video port 0.
       - description: Pixel clock for video port 1.
       - description: Pixel clock for video port 2.
+      - description: Pixel clock for video port 3.
+      - description: Peripheral(vop grf/dsi) clock.
 
   clock-names:
+    minItems: 5
     items:
       - const: aclk
       - const: hclk
       - const: dclk_vp0
       - const: dclk_vp1
       - const: dclk_vp2
+      - const: dclk_vp3
+      - const: pclk_vop
 
   rockchip,grf:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
-      Phandle to GRF regs used for misc control
+      Phandle to GRF regs used for control the polarity of dclk/hsync/vsync of DPI,
+      also used for query vop memory bisr enable status, etc.
+
+  rockchip,vo1-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to VO GRF regs used for control the polarity of dclk/hsync/vsync of hdmi
+      on rk3588.
+
+  rockchip,vop-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to VOP GRF regs used for control data path between vopr and hdmi/edp.
+
+  rockchip,pmu:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to PMU GRF used for query vop memory bisr status on rk3588.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
-    properties:
-      port@0:
+    patternProperties:
+      "^port@[0-3]$":
         $ref: /schemas/graph.yaml#/properties/port
-        description:
-          Output endpoint of VP0
+        description: Output endpoint of VP0/1/2/3.
 
-      port@1:
-        $ref: /schemas/graph.yaml#/properties/port
-        description:
-          Output endpoint of VP1
+    required:
+      - port@0
 
-      port@2:
-        $ref: /schemas/graph.yaml#/properties/port
-        description:
-          Output endpoint of VP2
+    unevaluatedProperties: false
 
   iommus:
     maxItems: 1
@@ -96,6 +115,49 @@ required:
   - clock-names
   - ports
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3588-vop
+    then:
+      properties:
+        clocks:
+          minItems: 7
+        clock-names:
+          minItems: 7
+
+        ports:
+          required:
+            - port@0
+            - port@1
+            - port@2
+            - port@3
+
+      required:
+        - rockchip,grf
+        - rockchip,vo1-grf
+        - rockchip,vop-grf
+        - rockchip,pmu
+
+    else:
+      properties:
+        rockchip,vo1-grf: false
+        rockchip,vop-grf: false
+        rockchip,pmu: false
+
+        clocks:
+          maxItems: 5
+        clock-names:
+          maxItems: 5
+
+        ports:
+          required:
+            - port@0
+            - port@1
+            - port@2
+
 additionalProperties: false
 
 examples:
index 25d53fde92e1104490e3f8e604184b9449150be3..597c9cc6a312acb66b0355f84f9dd8977dbb2197 100644 (file)
@@ -85,7 +85,7 @@ allOf:
         clocks:
           minItems: 6
           maxItems: 6
-        regs:
+        reg:
           minItems: 2
           maxItems: 2
 
@@ -99,7 +99,7 @@ allOf:
         clocks:
           minItems: 4
           maxItems: 4
-        regs:
+        reg:
           minItems: 2
           maxItems: 2
 
@@ -116,7 +116,7 @@ allOf:
         clocks:
           minItems: 3
           maxItems: 3
-        regs:
+        reg:
           minItems: 1
           maxItems: 1
 
index ae09cd3cbce1fcb138459ab16e5872190fd9e5de..b6767ef0d24dec8bee13006343dbc2d68821a110 100644 (file)
@@ -23,6 +23,7 @@ properties:
   compatible:
     enum:
       - ti,am625-dss
+      - ti,am62a7,dss
       - ti,am65x-dss
 
   reg:
@@ -87,6 +88,7 @@ properties:
           For AM65x DSS, the OLDI output port node from video port 1.
           For AM625 DSS, the internal DPI output port node from video
           port 1.
+          For AM62A7 DSS, the port is tied off inside the SoC.
 
       port@1:
         $ref: /schemas/graph.yaml#/properties/port
@@ -108,6 +110,18 @@ properties:
       Input memory (from main memory to dispc) bandwidth limit in
       bytes per second
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am62a7-dss
+    then:
+      properties:
+        ports:
+          properties:
+            port@0: false
+
 required:
   - compatible
   - reg
index 04d150d4d15d3cc74958c562ceaf921dc4bb24b0..e6afca558c2dfa4d84f5e821f519c1ad9dfa7d39 100644 (file)
@@ -19,19 +19,4 @@ properties:
 
 additionalProperties: true
 
-examples:
-  - |
-    dma: dma-controller@48000000 {
-        compatible = "ti,omap-sdma";
-        reg = <0x48000000 0x1000>;
-        interrupts = <0 12 0x4>,
-                     <0 13 0x4>,
-                     <0 14 0x4>,
-                     <0 15 0x4>;
-        #dma-cells = <1>;
-        dma-channels = <32>;
-        dma-requests = <127>;
-        dma-channel-mask = <0xfffe>;
-    };
-
 ...
index 346fe0fa4460e316223d80ed0ffbd890dfd65450..5ad2febc581e23a72d862b6e22c379bbe13bbaec 100644 (file)
@@ -40,15 +40,4 @@ required:
 
 additionalProperties: true
 
-examples:
-  - |
-    sdma_xbar: dma-router@4a002b78 {
-        compatible = "ti,dra7-dma-crossbar";
-        reg = <0x4a002b78 0xfc>;
-        #dma-cells = <1>;
-        dma-requests = <205>;
-        ti,dma-safe-map = <0>;
-        dma-masters = <&sdma>;
-    };
-
 ...
diff --git a/Bindings/dma/loongson,ls2x-apbdma.yaml b/Bindings/dma/loongson,ls2x-apbdma.yaml
new file mode 100644 (file)
index 0000000..6a1b49a
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/loongson,ls2x-apbdma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson LS2X APB DMA controller
+
+description:
+  The Loongson LS2X APB DMA controller is used for transferring data
+  between system memory and the peripherals on the APB bus.
+
+maintainers:
+  - Binbin Zhou <zhoubinbin@loongson.cn>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: loongson,ls2k1000-apbdma
+      - items:
+          - const: loongson,ls2k0500-apbdma
+          - const: loongson,ls2k1000-apbdma
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  '#dma-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - '#dma-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/loongson,ls2k-clk.h>
+
+    dma-controller@1fe00c00 {
+        compatible = "loongson,ls2k1000-apbdma";
+        reg = <0x1fe00c00 0x8>;
+        interrupt-parent = <&liointc1>;
+        interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clk LOONGSON2_APB_CLK>;
+        #dma-cells = <1>;
+    };
+
+...
index 4003dbe94940c2150fc6105f9c18d5bd914aa39b..877147e95ecc5df1a34893ac88e0d83d70418347 100644 (file)
@@ -53,6 +53,9 @@ properties:
       ADMA_CHn_CTRL register.
     const: 1
 
+  dma-channel-mask:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 88d0de3d1b46b8a9ff56613bd66dd3bf86034e0e..deb64cb9ca3eacf092b1f92a14407092689212d3 100644 (file)
@@ -32,6 +32,8 @@ properties:
               - qcom,sm8350-gpi-dma
               - qcom,sm8450-gpi-dma
               - qcom,sm8550-gpi-dma
+              - qcom,sm8650-gpi-dma
+              - qcom,x1e80100-gpi-dma
           - const: qcom,sm6350-gpi-dma
       - items:
           - enum:
index c284abc6784aec5439ba43f3fb3a8eab66fcbc16..a42b6a26a6d3f25874186faad8ce91995857f1a2 100644 (file)
@@ -16,7 +16,7 @@ properties:
   compatible:
     items:
       - enum:
-          - renesas,r9a07g043-dmac # RZ/G2UL
+          - renesas,r9a07g043-dmac # RZ/G2UL and RZ/Five
           - renesas,r9a07g044-dmac # RZ/G2{L,LC}
           - renesas,r9a07g054-dmac # RZ/V2L
       - const: renesas,rz-dmac
index a1af0b9063653741f4bd6b6501339aea34cba13f..3b22183a1a379258f3c8c826dbc6597d1dc3b3a9 100644 (file)
@@ -29,6 +29,7 @@ properties:
   compatible:
     items:
       - enum:
+          - microchip,mpfs-pdma
           - sifive,fu540-c000-pdma
       - const: sifive,pdma0
     description:
index 4ca300a42a99c2f60184318d9b7e8d5906872e44..27b8e163656006b311264c242ff2aaa790c30ebb 100644 (file)
@@ -37,11 +37,11 @@ properties:
 
   reg:
     minItems: 3
-    maxItems: 5
+    maxItems: 9
 
   reg-names:
     minItems: 3
-    maxItems: 5
+    maxItems: 9
 
   "#dma-cells":
     const: 3
@@ -141,7 +141,10 @@ allOf:
         ti,sci-rm-range-tchan: false
 
         reg:
-          maxItems: 3
+          items:
+            - description: BCDMA Control /Status Registers region
+            - description: RX Channel Realtime Registers region
+            - description: Ring Realtime Registers region
 
         reg-names:
           items:
@@ -161,14 +164,29 @@ allOf:
       properties:
         reg:
           minItems: 5
+          items:
+            - description: BCDMA Control /Status Registers region
+            - description: Block Copy Channel Realtime Registers region
+            - description: RX Channel Realtime Registers region
+            - description: TX Channel Realtime Registers region
+            - description: Ring Realtime Registers region
+            - description: Ring Configuration Registers region
+            - description: TX Channel Configuration Registers region
+            - description: RX Channel Configuration Registers region
+            - description: Block Copy Channel Configuration Registers region
 
         reg-names:
+          minItems: 5
           items:
             - const: gcfg
             - const: bchanrt
             - const: rchanrt
             - const: tchanrt
             - const: ringrt
+            - const: ring
+            - const: tchan
+            - const: rchan
+            - const: bchan
 
       required:
         - ti,sci-rm-range-bchan
@@ -184,7 +202,11 @@ allOf:
         ti,sci-rm-range-bchan: false
 
         reg:
-          maxItems: 4
+          items:
+            - description: BCDMA Control /Status Registers region
+            - description: RX Channel Realtime Registers region
+            - description: TX Channel Realtime Registers region
+            - description: Ring Realtime Registers region
 
         reg-names:
           items:
@@ -220,8 +242,13 @@ examples:
                       <0x0 0x4c000000 0x0 0x20000>,
                       <0x0 0x4a820000 0x0 0x20000>,
                       <0x0 0x4aa40000 0x0 0x20000>,
-                      <0x0 0x4bc00000 0x0 0x100000>;
-                reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                      <0x0 0x4bc00000 0x0 0x100000>,
+                      <0x0 0x48600000 0x0 0x8000>,
+                      <0x0 0x484a4000 0x0 0x2000>,
+                      <0x0 0x484c2000 0x0 0x2000>,
+                      <0x0 0x48420000 0x0 0x2000>;
+                reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                            "ring", "tchan", "rchan", "bchan";
                 msi-parent = <&inta_main_dmss>;
                 #dma-cells = <3>;
 
index a69f62f854d8c3e8d4084c4aa2c6e0f6cccd5819..11e064c029946641c8aacf5e49eb61b41477658d 100644 (file)
@@ -45,14 +45,28 @@ properties:
       The second cell is the ASEL value for the channel
 
   reg:
-    maxItems: 4
+    minItems: 4
+    items:
+      - description: Packet DMA Control /Status Registers region
+      - description: RX Channel Realtime Registers region
+      - description: TX Channel Realtime Registers region
+      - description: Ring Realtime Registers region
+      - description: Ring Configuration Registers region
+      - description: TX Configuration Registers region
+      - description: RX Configuration Registers region
+      - description: RX Flow Configuration Registers region
 
   reg-names:
+    minItems: 4
     items:
       - const: gcfg
       - const: rchanrt
       - const: tchanrt
       - const: ringrt
+      - const: ring
+      - const: tchan
+      - const: rchan
+      - const: rflow
 
   msi-parent: true
 
@@ -136,8 +150,14 @@ examples:
                 reg = <0x0 0x485c0000 0x0 0x100>,
                       <0x0 0x4a800000 0x0 0x20000>,
                       <0x0 0x4aa00000 0x0 0x40000>,
-                      <0x0 0x4b800000 0x0 0x400000>;
-                reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                      <0x0 0x4b800000 0x0 0x400000>,
+                      <0x0 0x485e0000 0x0 0x20000>,
+                      <0x0 0x484a0000 0x0 0x4000>,
+                      <0x0 0x484c0000 0x0 0x2000>,
+                      <0x0 0x48430000 0x0 0x4000>;
+                reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                            "ring", "tchan", "rchan", "rflow";
+
                 msi-parent = <&inta_main_dmss>;
                 #dma-cells = <2>;
 
index 22f6c5e2f7f4b94fe92c477e8a4336b111896e50..b18cf2bfdb5b14789b0a9ff405d57cb717802ad3 100644 (file)
@@ -69,13 +69,24 @@ properties:
       - ti,j721e-navss-mcu-udmap
 
   reg:
-    maxItems: 3
+    minItems: 3
+    items:
+      - description: UDMA-P Control /Status Registers region
+      - description: RX Channel Realtime Registers region
+      - description: TX Channel Realtime Registers region
+      - description: TX Configuration Registers region
+      - description: RX Configuration Registers region
+      - description: RX Flow Configuration Registers region
 
   reg-names:
+    minItems: 3
     items:
       - const: gcfg
       - const: rchanrt
       - const: tchanrt
+      - const: tchan
+      - const: rchan
+      - const: rflow
 
   msi-parent: true
 
@@ -158,8 +169,11 @@ examples:
                 compatible = "ti,am654-navss-main-udmap";
                 reg = <0x0 0x31150000 0x0 0x100>,
                       <0x0 0x34000000 0x0 0x100000>,
-                      <0x0 0x35000000 0x0 0x100000>;
-                reg-names = "gcfg", "rchanrt", "tchanrt";
+                      <0x0 0x35000000 0x0 0x100000>,
+                      <0x0 0x30b00000 0x0 0x20000>,
+                      <0x0 0x30c00000 0x0 0x8000>,
+                      <0x0 0x30d00000 0x0 0x4000>;
+                reg-names = "gcfg", "rchanrt", "tchanrt", "tchan", "rchan", "rflow";
                 #dma-cells = <1>;
 
                 ti,ringacc = <&ringacc>;
diff --git a/Bindings/dts-coding-style.rst b/Bindings/dts-coding-style.rst
new file mode 100644 (file)
index 0000000..a9bdd2b
--- /dev/null
@@ -0,0 +1,196 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=====================================
+Devicetree Sources (DTS) Coding Style
+=====================================
+
+When writing Devicetree Sources (DTS) please observe below guidelines.  They
+should be considered complementary to any rules expressed already in
+the Devicetree Specification and the dtc compiler (including W=1 and W=2
+builds).
+
+Individual architectures and subarchitectures can define additional rules,
+making the coding style stricter.
+
+Naming and Valid Characters
+---------------------------
+
+The Devicetree Specification allows a broad range of characters in node
+and property names, but this coding style narrows the range down to achieve
+better code readability.
+
+1. Node and property names can use only the following characters:
+
+   * Lowercase characters: [a-z]
+   * Digits: [0-9]
+   * Dash: -
+
+2. Labels can use only the following characters:
+
+   * Lowercase characters: [a-z]
+   * Digits: [0-9]
+   * Underscore: _
+
+3. Unless a bus defines differently, unit addresses shall use lowercase
+   hexadecimal digits, without leading zeros (padding).
+
+4. Hex values in properties, e.g. "reg", shall use lowercase hex.  The address
+   part can be padded with leading zeros.
+
+Example::
+
+       gpi_dma2: dma-controller@a00000 {
+               compatible = "qcom,sm8550-gpi-dma", "qcom,sm6350-gpi-dma";
+               reg = <0x0 0x00a00000 0x0 0x60000>;
+       }
+
+Order of Nodes
+--------------
+
+1. Nodes on any bus, thus using unit addresses for children, shall be
+   ordered by unit address in ascending order.
+   Alternatively for some subarchitectures, nodes of the same type can be
+   grouped together, e.g. all I2C controllers one after another even if this
+   breaks unit address ordering.
+
+2. Nodes without unit addresses shall be ordered alpha-numerically by the node
+   name.  For a few node types, they can be ordered by the main property, e.g.
+   pin configuration states ordered by value of "pins" property.
+
+3. When extending nodes in the board DTS via &label, the entries shall be
+   ordered either alpha-numerically or by keeping the order from DTSI, where
+   the choice depends on the subarchitecture.
+
+The above-described ordering rules are easy to enforce during review, reduce
+chances of conflicts for simultaneous additions of new nodes to a file and help
+in navigating through the DTS source.
+
+Example::
+
+       /* SoC DTSI */
+
+       / {
+               cpus {
+                       /* ... */
+               };
+
+               psci {
+                       /* ... */
+               };
+
+               soc@0 {
+                       dma: dma-controller@10000 {
+                               /* ... */
+                       };
+
+                       clk: clock-controller@80000 {
+                               /* ... */
+                       };
+               };
+       };
+
+       /* Board DTS - alphabetical order */
+
+       &clk {
+               /* ... */
+       };
+
+       &dma {
+               /* ... */
+       };
+
+       /* Board DTS - alternative order, keep as DTSI */
+
+       &dma {
+               /* ... */
+       };
+
+       &clk {
+               /* ... */
+       };
+
+Order of Properties in Device Node
+----------------------------------
+
+The following order of properties in device nodes is preferred:
+
+1. "compatible"
+2. "reg"
+3. "ranges"
+4. Standard/common properties (defined by common bindings, e.g. without
+   vendor-prefixes)
+5. Vendor-specific properties
+6. "status" (if applicable)
+7. Child nodes, where each node is preceded with a blank line
+
+The "status" property is by default "okay", thus it can be omitted.
+
+The above-described ordering follows this approach:
+
+1. Most important properties start the node: compatible then bus addressing to
+   match unit address.
+2. Each node will have common properties in similar place.
+3. Status is the last information to annotate that device node is or is not
+   finished (board resources are needed).
+
+Example::
+
+       /* SoC DTSI */
+
+       device_node: device-class@6789abc {
+               compatible = "vendor,device";
+               reg = <0x0 0x06789abc 0x0 0xa123>;
+               ranges = <0x0 0x0 0x06789abc 0x1000>;
+               #dma-cells = <1>;
+               clocks = <&clock_controller 0>, <&clock_controller 1>;
+               clock-names = "bus", "host";
+               vendor,custom-property = <2>;
+               status = "disabled";
+
+               child_node: child-class@100 {
+                       reg = <0x100 0x200>;
+                       /* ... */
+               };
+       };
+
+       /* Board DTS */
+
+       &device_node {
+               vdd-supply = <&board_vreg1>;
+               status = "okay";
+       }
+
+Indentation
+-----------
+
+1. Use indentation according to Documentation/process/coding-style.rst.
+2. Each entry in arrays with multiple cells, e.g. "reg" with two IO addresses,
+   shall be enclosed in <>.
+3. For arrays spanning across lines, it is preferred to align the continued
+   entries with opening < from the first line.
+
+Example::
+
+       thermal-sensor@c271000 {
+               compatible = "qcom,sm8550-tsens", "qcom,tsens-v2";
+               reg = <0x0 0x0c271000 0x0 0x1000>,
+                     <0x0 0x0c222000 0x0 0x1000>;
+       };
+
+Organizing DTSI and DTS
+-----------------------
+
+The DTSI and DTS files shall be organized in a way representing the common,
+reusable parts of hardware.  Typically, this means organizing DTSI and DTS files
+into several files:
+
+1. DTSI with contents of the entire SoC, without nodes for hardware not present
+   on the SoC.
+2. If applicable: DTSI with common or re-usable parts of the hardware, e.g.
+   entire System-on-Module.
+3. DTS representing the board.
+
+Hardware components that are present on the board shall be placed in the
+board DTS, not in the SoC or SoM DTSI.  A partial exception is a common
+external reference SoC input clock, which could be coded as a fixed-clock in
+the SoC DTSI with its frequency provided by each board DTS.
index b6864d0ee81e4bbf89fa75d9ee25771c234ddab6..1812ef31d5f1e941d4ae0e5a53e06f278cd55aca 100644 (file)
@@ -123,6 +123,7 @@ properties:
           - enum:
               - onnn,cat24c04
               - onnn,cat24c05
+              - rohm,br24g04
           - const: atmel,24c04
       - items:
           - const: renesas,r1ex24016
index 0613a37a851af4f049320d46465e89c3a4eb50f1..47d3d2d52acd2e60a17014b6f8d646a914d23238 100644 (file)
@@ -63,7 +63,9 @@ properties:
           - qcom,scm-sm8350
           - qcom,scm-sm8450
           - qcom,scm-sm8550
+          - qcom,scm-sm8650
           - qcom,scm-qcs404
+          - qcom,scm-x1e80100
       - const: qcom,scm
 
   clocks:
@@ -178,21 +180,6 @@ allOf:
           minItems: 3
           maxItems: 3
 
-  # Interconnects
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - qcom,scm-qdu1000
-                - qcom,scm-sc8280xp
-                - qcom,scm-sm8450
-                - qcom,scm-sm8550
-    then:
-      properties:
-        interconnects: false
-
   # Interrupts
   - if:
       not:
@@ -202,6 +189,7 @@ allOf:
               enum:
                 - qcom,scm-sm8450
                 - qcom,scm-sm8550
+                - qcom,scm-sm8650
     then:
       properties:
         interrupts: false
index 822864488dcbaddee4a4cd4a299034dfc78e3782..8e584857ddd4fb9d93cf4607805b8e38589e7cb8 100644 (file)
@@ -95,8 +95,8 @@ examples:
       versal_clk: clock-controller {
         #clock-cells = <1>;
         compatible = "xlnx,versal-clk";
-        clocks = <&ref>, <&alt_ref>, <&pl_alt_ref>;
-        clock-names = "ref", "alt_ref", "pl_alt_ref";
+        clocks = <&ref>, <&pl_alt_ref>;
+        clock-names = "ref", "pl_alt_ref";
       };
     };
 
diff --git a/Bindings/fpga/altera-fpga2sdram-bridge.txt b/Bindings/fpga/altera-fpga2sdram-bridge.txt
deleted file mode 100644 (file)
index 5dd0ff0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Altera FPGA To SDRAM Bridge Driver
-
-Required properties:
-- compatible           : Should contain "altr,socfpga-fpga2sdram-bridge"
-
-See Documentation/devicetree/bindings/fpga/fpga-bridge.txt for generic bindings.
-
-Example:
-       fpga_bridge3: fpga-bridge@ffc25080 {
-               compatible = "altr,socfpga-fpga2sdram-bridge";
-               reg = <0xffc25080 0x4>;
-               bridge-enable = <0>;
-       };
diff --git a/Bindings/fpga/altera-freeze-bridge.txt b/Bindings/fpga/altera-freeze-bridge.txt
deleted file mode 100644 (file)
index 8b26fbc..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Altera Freeze Bridge Controller Driver
-
-The Altera Freeze Bridge Controller manages one or more freeze bridges.
-The controller can freeze/disable the bridges which prevents signal
-changes from passing through the bridge.  The controller can also
-unfreeze/enable the bridges which allows traffic to pass through the
-bridge normally.
-
-Required properties:
-- compatible           : Should contain "altr,freeze-bridge-controller"
-- regs                 : base address and size for freeze bridge module
-
-See Documentation/devicetree/bindings/fpga/fpga-bridge.txt for generic bindings.
-
-Example:
-       freeze-controller@100000450 {
-               compatible = "altr,freeze-bridge-controller";
-               regs = <0x1000 0x10>;
-               bridge-enable = <0>;
-       };
diff --git a/Bindings/fpga/altera-hps2fpga-bridge.txt b/Bindings/fpga/altera-hps2fpga-bridge.txt
deleted file mode 100644 (file)
index 68cce39..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Altera FPGA/HPS Bridge Driver
-
-Required properties:
-- regs         : base address and size for AXI bridge module
-- compatible   : Should contain one of:
-                 "altr,socfpga-lwhps2fpga-bridge",
-                 "altr,socfpga-hps2fpga-bridge", or
-                 "altr,socfpga-fpga2hps-bridge"
-- resets       : Phandle and reset specifier for this bridge's reset
-- clocks       : Clocks used by this module.
-
-See Documentation/devicetree/bindings/fpga/fpga-bridge.txt for generic bindings.
-
-Example:
-       fpga_bridge0: fpga-bridge@ff400000 {
-               compatible = "altr,socfpga-lwhps2fpga-bridge";
-               reg = <0xff400000 0x100000>;
-               resets = <&rst LWHPS2FPGA_RESET>;
-               clocks = <&l4_main_clk>;
-               bridge-enable = <0>;
-       };
-
-       fpga_bridge1: fpga-bridge@ff500000 {
-               compatible = "altr,socfpga-hps2fpga-bridge";
-               reg = <0xff500000 0x10000>;
-               resets = <&rst HPS2FPGA_RESET>;
-               clocks = <&l4_main_clk>;
-               bridge-enable = <1>;
-       };
-
-       fpga_bridge2: fpga-bridge@ff600000 {
-               compatible = "altr,socfpga-fpga2hps-bridge";
-               reg = <0xff600000 0x100000>;
-               resets = <&rst FPGA2HPS_RESET>;
-               clocks = <&l4_main_clk>;
-       };
diff --git a/Bindings/fpga/altr,freeze-bridge-controller.yaml b/Bindings/fpga/altr,freeze-bridge-controller.yaml
new file mode 100644 (file)
index 0000000..fccffee
--- /dev/null
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/altr,freeze-bridge-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera Freeze Bridge Controller
+
+description:
+  The Altera Freeze Bridge Controller manages one or more freeze bridges.
+  The controller can freeze/disable the bridges which prevents signal
+  changes from passing through the bridge. The controller can also
+  unfreeze/enable the bridges which allows traffic to pass through the bridge
+  normally.
+
+maintainers:
+  - Xu Yilun <yilun.xu@intel.com>
+
+allOf:
+  - $ref: fpga-bridge.yaml#
+
+properties:
+  compatible:
+    const: altr,freeze-bridge-controller
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    fpga-bridge@100000450 {
+        compatible = "altr,freeze-bridge-controller";
+        reg = <0x1000 0x10>;
+        bridge-enable = <0>;
+    };
diff --git a/Bindings/fpga/altr,socfpga-fpga2sdram-bridge.yaml b/Bindings/fpga/altr,socfpga-fpga2sdram-bridge.yaml
new file mode 100644 (file)
index 0000000..22b5845
--- /dev/null
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/altr,socfpga-fpga2sdram-bridge.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera FPGA To SDRAM Bridge
+
+maintainers:
+  - Xu Yilun <yilun.xu@intel.com>
+
+allOf:
+  - $ref: fpga-bridge.yaml#
+
+properties:
+  compatible:
+    const: altr,socfpga-fpga2sdram-bridge
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    fpga-bridge@ffc25080 {
+        compatible = "altr,socfpga-fpga2sdram-bridge";
+        reg = <0xffc25080 0x4>;
+        bridge-enable = <0>;
+    };
diff --git a/Bindings/fpga/altr,socfpga-hps2fpga-bridge.yaml b/Bindings/fpga/altr,socfpga-hps2fpga-bridge.yaml
new file mode 100644 (file)
index 0000000..d19c666
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/altr,socfpga-hps2fpga-bridge.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera FPGA/HPS Bridge
+
+maintainers:
+  - Xu Yilun <yilun.xu@intel.com>
+
+allOf:
+  - $ref: fpga-bridge.yaml#
+
+properties:
+  compatible:
+    enum:
+      - altr,socfpga-lwhps2fpga-bridge
+      - altr,socfpga-hps2fpga-bridge
+      - altr,socfpga-fpga2hps-bridge
+
+  reg:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/reset/altr,rst-mgr.h>
+
+    fpga-bridge@ff400000 {
+      compatible = "altr,socfpga-lwhps2fpga-bridge";
+      reg = <0xff400000 0x100000>;
+      bridge-enable = <0>;
+      clocks = <&l4_main_clk>;
+      resets = <&rst LWHPS2FPGA_RESET>;
+    };
diff --git a/Bindings/fpga/fpga-bridge.txt b/Bindings/fpga/fpga-bridge.txt
deleted file mode 100644 (file)
index 72e0691..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-FPGA Bridge Device Tree Binding
-
-Optional properties:
-- bridge-enable                : 0 if driver should disable bridge at startup
-                         1 if driver should enable bridge at startup
-                         Default is to leave bridge in current state.
-
-Example:
-       fpga_bridge3: fpga-bridge@ffc25080 {
-               compatible = "altr,socfpga-fpga2sdram-bridge";
-               reg = <0xffc25080 0x4>;
-               bridge-enable = <0>;
-       };
diff --git a/Bindings/fpga/fpga-bridge.yaml b/Bindings/fpga/fpga-bridge.yaml
new file mode 100644 (file)
index 0000000..1ccb2aa
--- /dev/null
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/fpga-bridge.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: FPGA Bridge
+
+maintainers:
+  - Michal Simek <michal.simek@amd.com>
+
+properties:
+  $nodename:
+    pattern: "^fpga-bridge(@.*|-([0-9]|[1-9][0-9]+))?$"
+
+  bridge-enable:
+    description: |
+      0 if driver should disable bridge at startup
+      1 if driver should enable bridge at startup
+      Default is to leave bridge in current state.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 0, 1 ]
+
+additionalProperties: true
+
+examples:
+  - |
+    fpga-bridge {
+        bridge-enable = <0>;
+    };
index a7d4b8e59e1930829859279531ae53d8cf4dc8c0..5bf731f9d99a35f3b307f58497640e9c3f4f88f3 100644 (file)
@@ -9,6 +9,9 @@ title: Xilinx LogiCORE Partial Reconfig Decoupler/AXI shutdown manager Softcore
 maintainers:
   - Nava kishore Manne <nava.kishore.manne@amd.com>
 
+allOf:
+  - $ref: fpga-bridge.yaml#
+
 description: |
   The Xilinx LogiCORE Partial Reconfig(PR) Decoupler manages one or more
   decouplers/fpga bridges. The controller can decouple/disable the bridges
@@ -51,7 +54,7 @@ required:
   - clocks
   - clock-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 4835a280b3bff543d03a6fdc0dfd33483661db4d..cd80668182b608aebaad460f63c558e6387d7076 100644 (file)
@@ -28,6 +28,9 @@ properties:
       port or the USB host-controller port to which this device is attached,
       depending on the bus used. Required for the DDC, SPI or USB busses.
 
+  reset-gpios:
+    maxItems: 1
+
   vcc-supply:
     description: >
       Main voltage regulator
@@ -49,10 +52,13 @@ unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
+
     serial {
         gnss {
             compatible = "u-blox,neo-8";
             v-bckp-supply = <&gnss_v_bckp_reg>;
             vcc-supply = <&gnss_vcc_reg>;
+            reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
         };
     };
index 4a896ff7edc5facbebbab3a50e17a5fbcdc20da3..a1e71c974e79cef0289587453e835e47b2415a7b 100644 (file)
@@ -72,7 +72,7 @@ required:
   - reg
   - gpio-controller
   - "#gpio-cells"
-  - "brcm,gpio-bank-widths"
+  - brcm,gpio-bank-widths
 
 additionalProperties: false
 
diff --git a/Bindings/gpio/nuvoton,sgpio.yaml b/Bindings/gpio/nuvoton,sgpio.yaml
new file mode 100644 (file)
index 0000000..9e32e54
--- /dev/null
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/nuvoton,sgpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton SGPIO controller
+
+maintainers:
+  - Jim LIU <JJLIU0@nuvoton.com>
+
+description: |
+  This SGPIO controller is for NUVOTON NPCM7xx and NPCM8xx SoC and detailed
+  information is in the NPCM7XX/8XX SERIAL I/O EXPANSION INTERFACE section.
+  Nuvoton NPCM7xx SGPIO module is combines a serial to parallel IC (HC595)
+  and a parallel to serial IC (HC165).
+  Clock is a division of the APB3 clock.
+  This interface has 4 pins (D_out , D_in, S_CLK, LDSH).
+  NPCM7xx/NPCM8xx have two sgpio modules. Each module can support up
+  to 64 output pins, and up to 64 input pins, the pin is only for GPI or GPO.
+  GPIO pins can be programmed to support the following options
+  - Support interrupt option for each input port and various interrupt
+    sensitivity options (level-high, level-low, edge-high, edge-low)
+  - ngpios is number of nuvoton,input-ngpios GPIO lines and nuvoton,output-ngpios GPIO lines.
+    nuvoton,input-ngpios GPIO lines is only for GPI.
+    nuvoton,output-ngpios GPIO lines is only for GPO.
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,npcm750-sgpio
+      - nuvoton,npcm845-sgpio
+
+  reg:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  nuvoton,input-ngpios:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The numbers of GPIO's exposed. GPIO lines are only for GPI.
+    minimum: 0
+    maximum: 64
+
+  nuvoton,output-ngpios:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The numbers of GPIO's exposed. GPIO lines are only for GPO.
+    minimum: 0
+    maximum: 64
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - '#gpio-cells'
+  - interrupts
+  - nuvoton,input-ngpios
+  - nuvoton,output-ngpios
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    gpio8: gpio@101000 {
+        compatible = "nuvoton,npcm750-sgpio";
+        reg = <0x101000 0x200>;
+        clocks = <&clk NPCM7XX_CLK_APB3>;
+        interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        nuvoton,input-ngpios = <64>;
+        nuvoton,output-ngpios = <64>;
+    };
diff --git a/Bindings/gpio/realtek,rtd-gpio.yaml b/Bindings/gpio/realtek,rtd-gpio.yaml
new file mode 100644 (file)
index 0000000..dd768db
--- /dev/null
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2023 Realtek Semiconductor Corporation
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/realtek,rtd-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Realtek DHC GPIO controller
+
+maintainers:
+  - Tzuyi Chang <tychang@realtek.com>
+
+description:
+  The GPIO controller is designed for the Realtek DHC (Digital Home Center)
+  RTD series SoC family, which are high-definition media processor SoCs.
+
+properties:
+  compatible:
+    enum:
+      - realtek,rtd1295-misc-gpio
+      - realtek,rtd1295-iso-gpio
+      - realtek,rtd1315e-iso-gpio
+      - realtek,rtd1319-iso-gpio
+      - realtek,rtd1319d-iso-gpio
+      - realtek,rtd1395-iso-gpio
+      - realtek,rtd1619-iso-gpio
+      - realtek,rtd1619b-iso-gpio
+
+  reg:
+    items:
+      - description: GPIO controller registers
+      - description: GPIO interrupt registers
+
+  interrupts:
+    items:
+      - description: Interrupt number of the assert GPIO interrupt, which is
+                     triggered when there is a rising edge.
+      - description: Interrupt number of the deassert GPIO interrupt, which is
+                     triggered when there is a falling edge.
+
+  gpio-ranges: true
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - gpio-ranges
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio@100 {
+      compatible = "realtek,rtd1319d-iso-gpio";
+      reg = <0x100 0x100>,
+            <0x0 0xb0>;
+      interrupt-parent = <&iso_irq_mux>;
+      interrupts = <19>, <20>;
+      gpio-ranges = <&pinctrl 0 0 82>;
+      gpio-controller;
+      #gpio-cells = <2>;
+    };
index affd823c881d273bbbfa5cac4cf587e4d5233b8e..d76987ce8e50e6e53951867fdd26e62ab819923d 100644 (file)
@@ -41,6 +41,13 @@ properties:
   "#interrupt-cells":
     const: 2
 
+patternProperties:
+  "^.+-hog(-[0-9]+)?$":
+    type: object
+
+    required:
+      - gpio-hog
+
 required:
   - compatible
   - reg
index eefe7b345286f5d817647033b987255596ec8b68..ab2afc0e4153dc9b1f682e7bdda32cd8823245da 100644 (file)
@@ -65,6 +65,8 @@ patternProperties:
         minItems: 1
         maxItems: 32
 
+      gpio-ranges: true
+
       ngpios:
         default: 32
         minimum: 1
index c1060e5fcef3a95c4bf2ef55e897c6c09b790d03..d3d8a2e143ed25dee5634ae9539c413c4f51f865 100644 (file)
@@ -126,7 +126,7 @@ examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-        gpio@e000a000 {
+        gpio@a0020000 {
             compatible = "xlnx,xps-gpio-1.00.a";
             reg = <0xa0020000 0x10000>;
             #gpio-cells = <2>;
index 56143f1fe84ac774351f437e07f2635dfabbcd63..bb93baa888794b83d1613cecca79a383b528914a 100644 (file)
@@ -12,7 +12,8 @@ description:
   PS_MODE). Every pin can be configured as input/output.
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 properties:
   compatible:
@@ -23,6 +24,8 @@ properties:
   "#gpio-cells":
     const: 2
 
+  label: true
+
 required:
   - compatible
   - gpio-controller
@@ -37,6 +40,7 @@ examples:
             compatible = "xlnx,zynqmp-gpio-modepin";
             gpio-controller;
             #gpio-cells = <2>;
+            label = "modepin";
         };
     };
 
index ca02baba5526de12d77a4651f7cff47e5936d574..0801da33a385b42fa3a7ff367fafee54b1aae458 100644 (file)
@@ -40,6 +40,11 @@ properties:
               - rockchip,rk3288-mali
               - samsung,exynos5433-mali
           - const: arm,mali-t760
+      - items:
+          - enum:
+              - samsung,exynos7-mali
+          - const: samsung,exynos5433-mali
+          - const: arm,mali-t760
       - items:
           - enum:
               - rockchip,rk3399-mali
index 0fae1ef013be8b6853c60f71e42e9cdfee412ff4..abd4aa335fbcebafc9164bd4963f9db60f0450c4 100644 (file)
@@ -29,6 +29,7 @@ properties:
               - allwinner,sun50i-a64-mali
               - rockchip,rk3036-mali
               - rockchip,rk3066-mali
+              - rockchip,rk3128-mali
               - rockchip,rk3188-mali
               - rockchip,rk3228-mali
               - samsung,exynos4210-mali
index dae55b8a267b081291c6e3a93e1a700ace1cd8c2..dc078ceeca9ac3447ba54a7c8830821f0b2a7f9f 100644 (file)
@@ -17,6 +17,7 @@ properties:
   compatible:
     enum:
       - brcm,2711-v3d
+      - brcm,2712-v3d
       - brcm,7268-v3d
       - brcm,7278-v3d
 
diff --git a/Bindings/gpu/img,powervr.yaml b/Bindings/gpu/img,powervr.yaml
new file mode 100644 (file)
index 0000000..a13298f
--- /dev/null
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2023 Imagination Technologies Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpu/img,powervr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Imagination Technologies PowerVR and IMG GPU
+
+maintainers:
+  - Frank Binns <frank.binns@imgtec.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - ti,am62-gpu
+      - const: img,img-axe # IMG AXE GPU model/revision is fully discoverable
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    items:
+      - const: core
+      - const: mem
+      - const: sys
+    minItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am62-gpu
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+    gpu@fd00000 {
+        compatible = "ti,am62-gpu", "img,img-axe";
+        reg = <0x0fd00000 0x20000>;
+        clocks = <&k3_clks 187 0>;
+        clock-names = "core";
+        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+        power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
+    };
index e7daae86257890cae6d970cf09f19fdd98fbfa4b..132aaa49597b6b62e8cf72a0c73426edc4f63cf7 100644 (file)
@@ -22,36 +22,20 @@ properties:
   interrupts:
     maxItems: 1
 
-  clocks: {}
-  clock-names: {}
-  iommus: {}
-  power-domains: {}
-
-if:
-  properties:
-    compatible:
-      contains:
-        const: samsung,exynos5250-g2d
-
-then:
-  properties:
-    clocks:
-      items:
-        - description: fimg2d clock
-    clock-names:
-      items:
-        - const: fimg2d
-
-else:
-  properties:
-    clocks:
-      items:
-        - description: sclk_fimg2d clock
-        - description: fimg2d clock
-    clock-names:
-      items:
-        - const: sclk_fimg2d
-        - const: fimg2d
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    maxItems: 2
+
+  iommus:
+    minItems: 1
+    maxItems: 2
+
+  power-domains:
+    maxItems: 1
 
 required:
   - compatible
@@ -60,6 +44,33 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynos5250-g2d
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: fimg2d clock
+        clock-names:
+          items:
+            - const: fimg2d
+
+    else:
+      properties:
+        clocks:
+          items:
+            - description: sclk_fimg2d clock
+            - description: fimg2d clock
+        clock-names:
+          items:
+            - const: sclk_fimg2d
+            - const: fimg2d
+
 additionalProperties: false
 
 examples:
index d60626ffb28e228415953f931ca01941b1dd39ab..18bf44e06e8f304ec9534475391d8d4e97830cf2 100644 (file)
@@ -12,10 +12,11 @@ maintainers:
 properties:
   compatible:
     enum:
-      - "samsung,s5pv210-rotator"
-      - "samsung,exynos4210-rotator"
-      - "samsung,exynos4212-rotator"
-      - "samsung,exynos5250-rotator"
+      - samsung,s5pv210-rotator
+      - samsung,exynos4210-rotator
+      - samsung,exynos4212-rotator
+      - samsung,exynos5250-rotator
+
   reg:
     maxItems: 1
 
index 5317ac64426af7b976e4db4cd7a2c0771980fd7a..9fb530e65d0e8bb2993dd0bdfb5e9e4afeb80035 100644 (file)
@@ -21,40 +21,20 @@ properties:
   interrupts:
     maxItems: 1
 
-  clocks: {}
-  clock-names: {}
-  iommus: {}
-  power-domains: {}
-
-if:
-  properties:
-    compatible:
-      contains:
-        const: samsung,exynos5420-scaler
-
-then:
-  properties:
-    clocks:
-      items:
-        - description: mscl clock
-
-    clock-names:
-      items:
-        - const: mscl
-
-else:
-  properties:
-    clocks:
-      items:
-        - description: pclk clock
-        - description: aclk clock
-        - description: aclk_xiu clock
-
-    clock-names:
-      items:
-        - const: pclk
-        - const: aclk
-        - const: aclk_xiu
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    minItems: 1
+    maxItems: 3
+
+  iommus:
+    minItems: 1
+    maxItems: 2
+
+  power-domains:
+    maxItems: 1
 
 required:
   - compatible
@@ -63,6 +43,39 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynos5420-scaler
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: mscl clock
+        clock-names:
+          items:
+            - const: mscl
+        iommus:
+          minItems: 2
+
+    else:
+      properties:
+        clocks:
+          items:
+            - description: pclk clock
+            - description: aclk clock
+            - description: aclk_xiu clock
+        clock-names:
+          items:
+            - const: pclk
+            - const: aclk
+            - const: aclk_xiu
+        iommus:
+          maxItems: 1
+
 additionalProperties: false
 
 examples:
index 95cbdcb56efe41f24015ab1333e0b631935e00ec..780ccb5ee9b466157dc14614444125a833f62f66 100644 (file)
@@ -11,9 +11,21 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - samsung,exynos4210-chipid
-      - samsung,exynos850-chipid
+    oneOf:
+      - enum:
+          - samsung,exynos4210-chipid
+          - samsung,exynos850-chipid
+      - items:
+          - enum:
+              - samsung,exynos5433-chipid
+              - samsung,exynos7-chipid
+          - const: samsung,exynos4210-chipid
+      - items:
+          - enum:
+              - samsung,exynos7885-chipid
+              - samsung,exynosautov9-chipid
+              - samsung,exynosautov920-chipid
+          - const: samsung,exynos850-chipid
 
   reg:
     maxItems: 1
diff --git a/Bindings/hwmon/gpio-fan.txt b/Bindings/hwmon/gpio-fan.txt
deleted file mode 100644 (file)
index f4cfa35..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-Bindings for fan connected to GPIO lines
-
-Required properties:
-- compatible : "gpio-fan"
-
-Optional properties:
-- gpios: Specifies the pins that map to bits in the control value,
-  ordered MSB-->LSB.
-- gpio-fan,speed-map: A mapping of possible fan RPM speeds and the
-  control value that should be set to achieve them. This array
-  must have the RPM values in ascending order.
-- alarm-gpios: This pin going active indicates something is wrong with
-  the fan, and a udev event will be fired.
-- #cooling-cells: If used as a cooling device, must be <2>
-  Also see:
-  Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
-  min and max states are derived from the speed-map of the fan.
-
-Note: At least one the "gpios" or "alarm-gpios" properties must be set.
-
-Examples:
-
-       gpio_fan {
-               compatible = "gpio-fan";
-               gpios = <&gpio1 14 1
-                        &gpio1 13 1>;
-               gpio-fan,speed-map = <0    0
-                                     3000 1
-                                     6000 2>;
-               alarm-gpios = <&gpio1 15 1>;
-       };
-       gpio_fan_cool: gpio_fan {
-               compatible = "gpio-fan";
-               gpios = <&gpio2 14 1
-                        &gpio2 13 1>;
-               gpio-fan,speed-map =    <0    0>,
-                                       <3000 1>,
-                                       <6000 2>;
-               alarm-gpios = <&gpio2 15 1>;
-               #cooling-cells = <2>; /* min followed by max */
-       };
diff --git a/Bindings/hwmon/gpio-fan.yaml b/Bindings/hwmon/gpio-fan.yaml
new file mode 100644 (file)
index 0000000..7f30cfc
--- /dev/null
@@ -0,0 +1,60 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/gpio-fan.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Fan connected to GPIO lines
+
+maintainers:
+  - Rob Herring <robh@kernel.org>
+
+properties:
+  compatible:
+    const: gpio-fan
+
+  gpios:
+    description: |
+      Specifies the pins that map to bits in the control value,
+      ordered MSB-->LSB.
+    minItems: 1
+    maxItems: 7
+
+  alarm-gpios:
+    maxItems: 1
+
+  gpio-fan,speed-map:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    minItems: 2
+    maxItems: 127
+    items:
+      items:
+        - description: fan speed in RPMs
+        - description: control value
+    description: |
+      A mapping of possible fan RPM speeds and the
+      control value that should be set to achieve them. This array
+      must have the RPM values in ascending order.
+
+  '#cooling-cells':
+    const: 2
+
+required:
+  - compatible
+  - gpios
+  - gpio-fan,speed-map
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio-fan {
+      compatible = "gpio-fan";
+      gpios = <&gpio2 14 1
+               &gpio2 13 1>;
+      gpio-fan,speed-map = <   0 0>,
+                           <3000 1>,
+                           <6000 2>;
+      alarm-gpios = <&gpio2 15 1>;
+      #cooling-cells = <2>; /* min followed by max */
+    };
index e5b24782f4481e640e084fc463a7ec9fab7499c0..be5c7d4579bb070756f5ff9272e6da5a041b0a36 100644 (file)
@@ -19,7 +19,7 @@ properties:
 
   io-channels:
     minItems: 1
-    maxItems: 8 # Should be enough
+    maxItems: 51 # Should be enough
     description: >
       List of phandles to ADC channels to read the monitoring values
 
diff --git a/Bindings/hwmon/lltc,ltc4286.yaml b/Bindings/hwmon/lltc,ltc4286.yaml
new file mode 100644 (file)
index 0000000..98ca163
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/lltc,ltc4286.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LTC4286 power monitors
+
+maintainers:
+  - Delphine CC Chiu <Delphine_CC_Chiu@Wiwynn.com>
+
+properties:
+  compatible:
+    enum:
+      - lltc,ltc4286
+      - lltc,ltc4287
+
+  reg:
+    maxItems: 1
+
+  adi,vrange-low-enable:
+    description:
+      This property is a bool parameter to represent the
+      voltage range is 25.6 volts or 102.4 volts for this chip.
+      The default is 102.4 volts.
+    type: boolean
+
+  shunt-resistor-micro-ohms:
+    description:
+      Resistor value micro-ohms.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        power-monitor@40 {
+            compatible = "lltc,ltc4286";
+            reg = <0x40>;
+            adi,vrange-low-enable;
+            shunt-resistor-micro-ohms = <300>;
+        };
+    };
index 0b69897f0c63fc32d9f125f8eaddadc684029238..ed269e428a3d93350ccb968059462a3c0d2de418 100644 (file)
@@ -14,6 +14,7 @@ properties:
   compatible:
     enum:
       - adi,adt75
+      - ams,as6200
       - atmel,at30ts74
       - dallas,ds1775
       - dallas,ds75
@@ -48,10 +49,28 @@ properties:
   vs-supply:
     description: phandle to the regulator that provides the +VS supply
 
+  interrupts:
+    maxItems: 1
+
 required:
   - compatible
   - reg
 
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - ams,as6200
+                - ti,tmp100
+                - ti,tmp101
+                - ti,tmp112
+    then:
+      properties:
+        interrupts: false
+
 additionalProperties: false
 
 examples:
@@ -66,3 +85,17 @@ examples:
         vs-supply = <&vs>;
       };
     };
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      temperature-sensor@48 {
+        compatible = "ams,as6200";
+        reg = <0x48>;
+        vs-supply = <&vs>;
+        interrupt-parent = <&gpio1>;
+        interrupts = <17 IRQ_TYPE_EDGE_BOTH>;
+      };
+    };
index 3e52a0db6c41b16b049dd4cb5d799ff51f196a17..df9c57bca2a89cd81ac4d6c8eabf4ec24f51a171 100644 (file)
@@ -25,7 +25,16 @@ properties:
           - samsung,exynos5250-hsi2c    # Exynos5250 and Exynos5420
           - samsung,exynos5260-hsi2c    # Exynos5260
           - samsung,exynos7-hsi2c       # Exynos7
-          - samsung,exynosautov9-hsi2c  # ExynosAutoV9 and Exynos850
+          - samsung,exynosautov9-hsi2c
+      - items:
+          - enum:
+              - samsung,exynos5433-hsi2c
+              - tesla,fsd-hsi2c
+          - const: samsung,exynos7-hsi2c
+      - items:
+          - enum:
+              - samsung,exynos850-hsi2c
+          - const: samsung,exynosautov9-hsi2c
       - const: samsung,exynos5-hsi2c    # Exynos5250 and Exynos5420
         deprecated: true
 
index b204e35e4f8d11fd86e52419db12ed21b74b193b..1303502cf265536827d6ade4e1e8ea12eea895fc 100644 (file)
@@ -11,14 +11,20 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - samsung,s3c2410-i2c
-      - samsung,s3c2440-i2c
-        # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs:
-      - samsung,s3c2440-hdmiphy-i2c
-        # For s3c2440-like I2C used as a host to SATA PHY controller on an
-        # internal bus:
-      - samsung,exynos5-sata-phy-i2c
+    oneOf:
+      - enum:
+          - samsung,s3c2410-i2c
+          - samsung,s3c2440-i2c
+            # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs:
+          - samsung,s3c2440-hdmiphy-i2c
+            # For s3c2440-like I2C used as a host to SATA PHY controller on an
+            # internal bus:
+          - samsung,exynos5-sata-phy-i2c
+      - items:
+          - enum:
+              - samsung,exynos7885-i2c
+              - samsung,exynos850-i2c
+          - const: samsung,s3c2440-i2c
 
   '#address-cells':
     const: 1
index 94b75d9f66cdb7b1e2227ae5dde9475449fed07d..1b31b87c1800a00d8935d261432117ea5d601191 100644 (file)
@@ -19,6 +19,7 @@ allOf:
               - st,stm32f7-i2c
               - st,stm32mp13-i2c
               - st,stm32mp15-i2c
+              - st,stm32mp25-i2c
     then:
       properties:
         i2c-scl-rising-time-ns:
@@ -41,6 +42,30 @@ allOf:
         clock-frequency:
           enum: [100000, 400000]
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - st,stm32f4-i2c
+              - st,stm32f7-i2c
+              - st,stm32mp13-i2c
+              - st,stm32mp15-i2c
+    then:
+      properties:
+        interrupts:
+          minItems: 2
+
+        interrupt-names:
+          minItems: 2
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
+        interrupt-names:
+          maxItems: 1
+
 properties:
   compatible:
     enum:
@@ -48,6 +73,7 @@ properties:
       - st,stm32f7-i2c
       - st,stm32mp13-i2c
       - st,stm32mp15-i2c
+      - st,stm32mp25-i2c
 
   reg:
     maxItems: 1
@@ -56,11 +82,13 @@ properties:
     items:
       - description: interrupt ID for I2C event
       - description: interrupt ID for I2C error
+    minItems: 1
 
   interrupt-names:
     items:
       - const: event
       - const: error
+    minItems: 1
 
   resets:
     maxItems: 1
index ce7ba634643c6939cb6abb6a29b0ee6a789feabf..ddec9747436c2954b1dc87bd90d4d84fea8268d3 100644 (file)
@@ -4,36 +4,92 @@
 $id: http://devicetree.org/schemas/iio/adc/adi,ad7091r5.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Analog Devices AD7091R5 4-Channel 12-Bit ADC
+title: Analog Devices AD7091R-2/-4/-5/-8 Multi-Channel 12-Bit ADCs
 
 maintainers:
   - Michael Hennerich <michael.hennerich@analog.com>
+  - Marcelo Schmitt <marcelo.schmitt@analog.com>
 
 description: |
-  Analog Devices AD7091R5 4-Channel 12-Bit ADC
+  Analog Devices AD7091R5 4-Channel 12-Bit ADC supporting I2C interface
   https://www.analog.com/media/en/technical-documentation/data-sheets/ad7091r-5.pdf
+  Analog Devices AD7091R-2/AD7091R-4/AD7091R-8 2-/4-/8-Channel 12-Bit ADCs
+  supporting SPI interface
+  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7091R-2_7091R-4_7091R-8.pdf
 
 properties:
   compatible:
     enum:
+      - adi,ad7091r2
+      - adi,ad7091r4
       - adi,ad7091r5
+      - adi,ad7091r8
 
   reg:
     maxItems: 1
 
+  vdd-supply:
+    description:
+      Provide VDD power to the sensor (VDD range is from 2.7V to 5.25V).
+
+  vdrive-supply:
+    description:
+      Determines the voltage level at which the interface logic will operate.
+      The V_drive voltage range is from 1.8V to 5.25V and must not exceed VDD by
+      more than 0.3V.
+
   vref-supply:
     description:
       Phandle to the vref power supply
 
-  interrupts:
+  convst-gpios:
+    description:
+      GPIO connected to the CONVST pin.
+      This logic input is used to initiate conversions on the analog
+      input channels.
     maxItems: 1
 
+  reset-gpios:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Interrupt for signaling when conversion results exceed the high limit for
+      ADC readings or fall below the low limit for them. Interrupt source must
+      be attached to ALERT/BUSY/GPO0 pin.
+    maxItems: 1
 
 required:
   - compatible
   - reg
 
-additionalProperties: false
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+  # AD7091R-2 does not have ALERT/BUSY/GPO pin
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad7091r2
+    then:
+      properties:
+        interrupts: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad7091r2
+              - adi,ad7091r4
+              - adi,ad7091r8
+    then:
+      required:
+        - convst-gpios
+
+unevaluatedProperties: false
 
 examples:
   - |
@@ -51,4 +107,22 @@ examples:
             interrupt-parent = <&gpio>;
         };
     };
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad7091r8";
+            reg = <0x0>;
+            spi-max-frequency = <1000000>;
+            vref-supply = <&adc_vref>;
+            convst-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+            reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
+            interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
+            interrupt-parent = <&gpio>;
+        };
+    };
 ...
index 5fcc8dd012f17c0780c701a33d0d5d675875004b..be2616ff9af68574444db483373c306d3ce38016 100644 (file)
@@ -80,9 +80,9 @@ examples:
             compatible = "adi,ad7780";
             reg = <0>;
 
-            avdd-supply      = <&vdd_supply>;
-            powerdown-gpios  = <&gpio0 12 GPIO_ACTIVE_HIGH>;
-            adi,gain-gpios   = <&gpio1  5 GPIO_ACTIVE_LOW>;
+            avdd-supply = <&vdd_supply>;
+            powerdown-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+            adi,gain-gpios = <&gpio1  5 GPIO_ACTIVE_LOW>;
             adi,filter-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
         };
     };
diff --git a/Bindings/iio/adc/maxim,max34408.yaml b/Bindings/iio/adc/maxim,max34408.yaml
new file mode 100644 (file)
index 0000000..4cba856
--- /dev/null
@@ -0,0 +1,139 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/maxim,max34408.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX34408/MAX34409 current monitors with overcurrent control
+
+maintainers:
+  - Ivan Mikhaylov <fr0st61te@gmail.com>
+
+description: |
+  The MAX34408/MAX34409 are two- and four-channel current monitors that are
+  configured and monitored with a standard I2C/SMBus serial interface. Each
+  unidirectional current sensor offers precision high-side operation with a
+  low full-scale sense voltage. The devices automatically sequence through
+  two or four channels and collect the current-sense samples and average them
+  to reduce the effect of impulse noise. The raw ADC samples are compared to
+  user-programmable digital thresholds to indicate overcurrent conditions.
+  Overcurrent conditions trigger a hardware output to provide an immediate
+  indication to shut down any necessary external circuitry.
+
+  Specifications about the devices can be found at:
+  https://www.analog.com/media/en/technical-documentation/data-sheets/MAX34408-MAX34409.pdf
+
+properties:
+  compatible:
+    enum:
+      - maxim,max34408
+      - maxim,max34409
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  powerdown-gpios:
+    description:
+      Shutdown Output. Open-drain output. This output transitions to high impedance
+      when any of the digital comparator thresholds are exceeded as long as the ENA
+      pin is high.
+    maxItems: 1
+
+  powerdown-status-gpios:
+    description:
+      SHTDN Enable Input. CMOS digital input. Connect to GND to clear the latch and
+      unconditionally deassert (force low) the SHTDN output and reset the shutdown
+      delay. Connect to VDD to enable normal latch operation of the SHTDN output.
+    maxItems: 1
+
+  vdd-supply: true
+
+patternProperties:
+  "^channel@[0-3]$":
+    $ref: adc.yaml
+    type: object
+    description:
+      Represents the internal channels of the ADC.
+
+    properties:
+      reg:
+        items:
+          - minimum: 0
+            maximum: 3
+
+      maxim,rsense-val-micro-ohms:
+        description:
+          Adjust the Rsense value to monitor higher or lower current levels for
+          input.
+        enum: [250, 500, 1000, 5000, 10000, 50000, 100000, 200000, 500000]
+        default: 1000
+
+    required:
+      - reg
+      - maxim,rsense-val-micro-ohms
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: maxim,max34408
+    then:
+      patternProperties:
+        "^channel@[2-3]$": false
+        "^channel@[0-1]$":
+          properties:
+            reg:
+              maximum: 1
+    else:
+      patternProperties:
+        "^channel@[0-3]$":
+          properties:
+            reg:
+              maximum: 3
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@1e {
+              compatible = "maxim,max34409";
+              reg = <0x1e>;
+              powerdown-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+              powerdown-status-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+
+              #address-cells = <1>;
+              #size-cells = <0>;
+
+              channel@0 {
+                  reg = <0x0>;
+                  maxim,rsense-val-micro-ohms = <5000>;
+              };
+
+              channel@1 {
+                  reg = <0x1>;
+                  maxim,rsense-val-micro-ohms = <10000>;
+             };
+        };
+    };
index 73def67fbe015b05b5e45ab3afae07aa0d1b05d3..5ed893ef5c189ddfe9f70d0c2a188ad4c47f9c1c 100644 (file)
@@ -25,7 +25,7 @@ properties:
       - const: qcom,spmi-iadc
 
   reg:
-    description: IADC base address and length in the SPMI PMIC register map
+    description: IADC base address in the SPMI PMIC register map
     maxItems: 1
 
   qcom,external-resistor-micro-ohms:
@@ -50,15 +50,17 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
-    spmi {
+
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
-        pmic_iadc: adc@3600 {
+
+        adc@3600 {
             compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
             reg = <0x3600>;
             interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
             qcom,external-resistor-micro-ohms = <10000>;
-            #io-channel-cells  = <1>;
+            #io-channel-cells = <1>;
         };
     };
 ...
index b3a626389870f19d6a2a6aea792c604019c48c1b..f39bc92c2b99bb368326b4a7bb4c95f8f8b102be 100644 (file)
@@ -43,9 +43,9 @@ examples:
         #address-cells = <1>;
         #size-cells = <0>;
 
-        pmic_rradc: adc@4500 {
+        adc@4500 {
             compatible = "qcom,pmi8998-rradc";
             reg = <0x4500>;
-            #io-channel-cells  = <1>;
+            #io-channel-cells = <1>;
         };
     };
index ad7d6fc49de58ea1ed6ed9f55ba11d97ae6c721b..40fa0710f1f0f8f4c9e501e56055f1c33a3b0aed 100644 (file)
@@ -236,11 +236,11 @@ additionalProperties: false
 
 examples:
   - |
-    spmi {
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
-        /* VADC node */
-        pmic_vadc: adc@3100 {
+
+        adc@3100 {
             compatible = "qcom,spmi-vadc";
             reg = <0x3100>;
             interrupts = <0x0 0x31 0x0 0x1>;
@@ -281,9 +281,10 @@ examples:
     #include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
     #include <dt-bindings/interrupt-controller/irq.h>
 
-    spmi {
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
+
         adc@3100 {
             reg = <0x3100>;
             compatible = "qcom,spmi-adc7";
index 582d0a03b8147d7832498bda888fffd19fbf987c..4e40f6bed5dbe1e85b36ebac01ef5bfbfbb8b435 100644 (file)
@@ -11,18 +11,23 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - samsung,exynos-adc-v1                 # Exynos5250
-      - samsung,exynos-adc-v2
-      - samsung,exynos3250-adc
-      - samsung,exynos4212-adc                # Exynos4212 and Exynos4412
-      - samsung,exynos7-adc
-      - samsung,s3c2410-adc
-      - samsung,s3c2416-adc
-      - samsung,s3c2440-adc
-      - samsung,s3c2443-adc
-      - samsung,s3c6410-adc
-      - samsung,s5pv210-adc
+    oneOf:
+      - enum:
+          - samsung,exynos-adc-v1                 # Exynos5250
+          - samsung,exynos-adc-v2
+          - samsung,exynos3250-adc
+          - samsung,exynos4212-adc                # Exynos4212 and Exynos4412
+          - samsung,exynos7-adc
+          - samsung,s3c2410-adc
+          - samsung,s3c2416-adc
+          - samsung,s3c2440-adc
+          - samsung,s3c2443-adc
+          - samsung,s3c6410-adc
+          - samsung,s5pv210-adc
+      - items:
+          - enum:
+              - samsung,exynos5433-adc
+          - const: samsung,exynos7-adc
 
   reg:
     maxItems: 1
index 720c16a108d4e2034e4e8a4ec182e4a1ab3f60b0..f94057d8f60586934799735c0de01b6211d85dab 100644 (file)
@@ -67,19 +67,4 @@ required:
   - compatible
   - "#io-channel-cells"
 
-examples:
-  - |
-    #include <dt-bindings/clock/mt8183-clk.h>
-    pmic {
-        compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
-        adc {
-            compatible = "ti,palmas-gpadc";
-            interrupts = <18 0>,
-                         <16 0>,
-                         <17 0>;
-            #io-channel-cells = <1>;
-            ti,channel0-current-microamp = <5>;
-            ti,channel3-current-microamp = <10>;
-        };
-    };
 ...
index 2ee6080deac7c6c09a09299adf42298b82b85719..67de9d4e3a1df6ca9bf90773db3c82d50a67a302 100644 (file)
@@ -12,6 +12,9 @@ maintainers:
 description: |
   Digital Step Attenuator IIO devices with gpio interface.
   Offer various frequency and attenuation ranges.
+  ADRF5750 2 dB LSB, 4-Bit, Silicon Digital Attenuator, 10 MHz to 60 GHz
+    https://www.analog.com/media/en/technical-documentation/data-sheets/adrf5740.pdf
+
   HMC425A 0.5 dB LSB GaAs MMIC 6-BIT DIGITAL POSITIVE CONTROL ATTENUATOR, 2.2 - 8.0 GHz
     https://www.analog.com/media/en/technical-documentation/data-sheets/hmc425A.pdf
 
@@ -22,6 +25,7 @@ description: |
 properties:
   compatible:
     enum:
+      - adi,adrf5740
       - adi,hmc425a
       - adi,hmc540s
 
diff --git a/Bindings/iio/chemical/aosong,ags02ma.yaml b/Bindings/iio/chemical/aosong,ags02ma.yaml
new file mode 100644 (file)
index 0000000..35e7b09
--- /dev/null
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/chemical/aosong,ags02ma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aosong AGS02MA VOC Sensor
+
+description: |
+  AGS02MA is an TVOC (Total Volatile Organic Compounds) i2c sensor with default
+  address of 0x1a.
+
+  Datasheet:
+    https://asairsensors.com/wp-content/uploads/2021/09/AGS02MA.pdf
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - aosong,ags02ma
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        voc-sensor@1a {
+            compatible = "aosong,ags02ma";
+            reg = <0x1a>;
+            vdd-supply = <&vdd_regulator>;
+        };
+    };
index 3a84739736f620cf62a399e21bc50b7d0c03bf69..c81285d84db7a206d0633995072053ea208c0f55 100644 (file)
@@ -26,6 +26,11 @@ properties:
   vdd-supply: true
   vss-supply: true
 
+  adi,rbuf-gain2-en:
+    description: Specify to allow an external amplifier to be connected in a
+      gain of two configuration.
+    type: boolean
+
 required:
   - compatible
   - reg
diff --git a/Bindings/iio/dac/microchip,mcp4821.yaml b/Bindings/iio/dac/microchip,mcp4821.yaml
new file mode 100644 (file)
index 0000000..0dc577c
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4821.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip MCP4821 and similar DACs
+
+description: |
+  Supports MCP48x1 (single channel) and MCP48x2 (dual channel) series of DACs.
+  Device supports simplex communication over SPI in Mode 0 and Mode 3.
+
+  +---------+--------------+-------------+
+  | Device  |  Resolution  |   Channels  |
+  |---------|--------------|-------------|
+  | MCP4801 |     8-bit    |      1      |
+  | MCP4802 |     8-bit    |      2      |
+  | MCP4811 |    10-bit    |      1      |
+  | MCP4812 |    10-bit    |      2      |
+  | MCP4821 |    12-bit    |      1      |
+  | MCP4822 |    12-bit    |      2      |
+  +---------+--------------+-------------+
+
+  Datasheet:
+    MCP48x1: https://ww1.microchip.com/downloads/en/DeviceDoc/22244B.pdf
+    MCP48x2: https://ww1.microchip.com/downloads/en/DeviceDoc/20002249B.pdf
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - microchip,mcp4801
+      - microchip,mcp4802
+      - microchip,mcp4811
+      - microchip,mcp4812
+      - microchip,mcp4821
+      - microchip,mcp4822
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+  ldac-gpios:
+    description: |
+      Active Low LDAC (Latch DAC Input) pin used to update the DAC output.
+    maxItems: 1
+
+  powerdown-gpios:
+    description: |
+      Active Low SHDN pin used to enter the shutdown mode.
+    maxItems: 1
+
+  spi-cpha: true
+  spi-cpol: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        dac@0 {
+            compatible = "microchip,mcp4821";
+            reg = <0>;
+            vdd-supply = <&vdd_regulator>;
+            ldac-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+            powerdown-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+            spi-cpha;
+            spi-cpol;
+        };
+    };
diff --git a/Bindings/iio/humidity/ti,hdc3020.yaml b/Bindings/iio/humidity/ti,hdc3020.yaml
new file mode 100644 (file)
index 0000000..7f6d0f9
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/humidity/ti,hdc3020.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: HDC3020/HDC3021/HDC3022 humidity and temperature iio sensors
+
+maintainers:
+  - Li peiyu <579lpy@gmail.com>
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+description:
+  https://www.ti.com/lit/ds/symlink/hdc3020.pdf
+
+  The HDC302x is an integrated capacitive based relative humidity (RH)
+  and temperature sensor.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - ti,hdc3021
+              - ti,hdc3022
+          - const: ti,hdc3020
+      - const: ti,hdc3020
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        humidity-sensor@47 {
+            compatible = "ti,hdc3021", "ti,hdc3020";
+            reg = <0x47>;
+            vdd-supply = <&vcc_3v3>;
+        };
+    };
index 4e43c80e5119f021883bc374e9a6a3c53875113c..4cacc9948726f0b66f9d4c4e9691015e9fada808 100644 (file)
@@ -25,6 +25,10 @@ properties:
 
   spi-cpol: true
 
+  spi-cs-inactive-delay-ns:
+    minimum: 16000
+    default: 16000
+
   interrupts:
     maxItems: 1
 
index c73533c54588b17275282bec02a6ed36486a9686..9b7ad609f7dbe13ce6430bf859e955bc390c076d 100644 (file)
@@ -47,6 +47,10 @@ properties:
   spi-max-frequency:
     maximum: 2000000
 
+  spi-cs-inactive-delay-ns:
+    minimum: 16000
+    default: 16000
+
   interrupts:
     maxItems: 1
 
diff --git a/Bindings/iio/imu/bosch,bmi323.yaml b/Bindings/iio/imu/bosch,bmi323.yaml
new file mode 100644 (file)
index 0000000..64ef26e
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/imu/bosch,bmi323.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bosch BMI323 6-Axis IMU
+
+maintainers:
+  - Jagath Jog J <jagathjog1996@gmail.com>
+
+description:
+  BMI323 is a 6-axis inertial measurement unit that supports acceleration and
+  gyroscopic measurements with hardware fifo buffering. Sensor also provides
+  events information such as motion, steps, orientation, single and double
+  tap detection.
+
+properties:
+  compatible:
+    const: bosch,bmi323
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+  vddio-supply: true
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    maxItems: 2
+    items:
+      enum:
+        - INT1
+        - INT2
+
+  drive-open-drain:
+    description:
+      set if the specified interrupt pin should be configured as
+      open drain. If not set, defaults to push-pull.
+
+  mount-matrix:
+    description:
+      an optional 3x3 mounting rotation matrix.
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - vddio-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    // Example for I2C
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        imu@68 {
+            compatible = "bosch,bmi323";
+            reg = <0x68>;
+            vddio-supply = <&vddio>;
+            vdd-supply = <&vdd>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+            interrupt-names = "INT1";
+        };
+    };
diff --git a/Bindings/iio/light/liteon,ltr390.yaml b/Bindings/iio/light/liteon,ltr390.yaml
new file mode 100644 (file)
index 0000000..5d98ef2
--- /dev/null
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/liteon,ltr390.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Lite-On LTR390 ALS and UV Sensor
+
+description: |
+  The Lite-On LTR390 is an ALS (Ambient Light Sensor) and a UV sensor in a
+  single package with i2c address of 0x53.
+
+  Datasheet:
+    https://optoelectronics.liteon.com/upload/download/DS86-2015-0004/LTR-390UV_Final_%20DS_V1%201.pdf
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - liteon,ltr390
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description: |
+      Level interrupt pin with open drain output.
+      The sensor pulls this pin low when the measured reading is greater than
+      some configured threshold.
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        light-sensor@53 {
+            compatible = "liteon,ltr390";
+            reg = <0x53>;
+            interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
+            vdd-supply = <&vdd_regulator>;
+        };
+    };
diff --git a/Bindings/iio/light/vishay,veml6075.yaml b/Bindings/iio/light/vishay,veml6075.yaml
new file mode 100644 (file)
index 0000000..abee04c
--- /dev/null
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/vishay,veml6075.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Vishay VEML6075 UVA and UVB sensor
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+properties:
+  compatible:
+    const: vishay,veml6075
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        uv-sensor@10 {
+            compatible = "vishay,veml6075";
+            reg = <0x10>;
+            vdd-supply = <&vdd_reg>;
+        };
+    };
+...
diff --git a/Bindings/iio/pressure/honeywell,hsc030pa.yaml b/Bindings/iio/pressure/honeywell,hsc030pa.yaml
new file mode 100644 (file)
index 0000000..65a24ed
--- /dev/null
@@ -0,0 +1,142 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/pressure/honeywell,hsc030pa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Honeywell TruStability HSC and SSC pressure sensor series
+
+description: |
+  support for Honeywell TruStability HSC and SSC digital pressure sensor
+  series.
+
+  These sensors have either an I2C, an SPI or an analog interface. Only the
+  digital versions are supported by this driver.
+
+  There are 118 models with different pressure ranges available in each family.
+  The vendor calls them "HSC series" and "SSC series". All of them have an
+  identical programming model but differ in pressure range, unit and transfer
+  function.
+
+  To support different models one needs to specify the pressure range as well
+  as the transfer function. Pressure range can either be provided via
+  pressure-triplet (directly extracted from the part number) or in case it's
+  a custom chip via numerical range limits converted to pascals.
+
+  The transfer function defines the ranges of raw conversion values delivered
+  by the sensor. pmin-pascal and pmax-pascal corespond to the minimum and
+  maximum pressure that can be measured.
+
+  Please note that in case of an SPI-based sensor, the clock signal should not
+  exceed 800kHz and the MOSI signal is not required.
+
+  Specifications about the devices can be found at:
+  https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/trustability-hsc-series/documents/sps-siot-trustability-hsc-series-high-accuracy-board-mount-pressure-sensors-50099148-a-en-ciid-151133.pdf
+  https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/trustability-ssc-series/documents/sps-siot-trustability-ssc-series-standard-accuracy-board-mount-pressure-sensors-50099533-a-en-ciid-151134.pdf
+
+maintainers:
+  - Petre Rodan <petre.rodan@subdimension.ro>
+
+properties:
+  compatible:
+    const: honeywell,hsc030pa
+
+  reg:
+    maxItems: 1
+
+  honeywell,transfer-function:
+    description: |
+      Transfer function which defines the range of valid values delivered by
+      the sensor.
+      0 - A, 10% to 90% of 2^14
+      1 - B, 5% to 95% of 2^14
+      2 - C, 5% to 85% of 2^14
+      3 - F, 4% to 94% of 2^14
+    enum: [0, 1, 2, 3]
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  honeywell,pressure-triplet:
+    description: |
+      Case-sensitive five character string that defines pressure range, unit
+      and type as part of the device nomenclature. In the unlikely case of a
+      custom chip, set to "NA" and provide pmin-pascal and pmax-pascal.
+    enum: [001BA, 1.6BA, 2.5BA, 004BA, 006BA, 010BA, 1.6MD, 2.5MD, 004MD,
+           006MD, 010MD, 016MD, 025MD, 040MD, 060MD, 100MD, 160MD, 250MD,
+           400MD, 600MD, 001BD, 1.6BD, 2.5BD, 004BD, 2.5MG, 004MG, 006MG,
+           010MG, 016MG, 025MG, 040MG, 060MG, 100MG, 160MG, 250MG, 400MG,
+           600MG, 001BG, 1.6BG, 2.5BG, 004BG, 006BG, 010BG, 100KA, 160KA,
+           250KA, 400KA, 600KA, 001GA, 160LD, 250LD, 400LD, 600LD, 001KD,
+           1.6KD, 2.5KD, 004KD, 006KD, 010KD, 016KD, 025KD, 040KD, 060KD,
+           100KD, 160KD, 250KD, 400KD, 250LG, 400LG, 600LG, 001KG, 1.6KG,
+           2.5KG, 004KG, 006KG, 010KG, 016KG, 025KG, 040KG, 060KG, 100KG,
+           160KG, 250KG, 400KG, 600KG, 001GG, 015PA, 030PA, 060PA, 100PA,
+           150PA, 0.5ND, 001ND, 002ND, 004ND, 005ND, 010ND, 020ND, 030ND,
+           001PD, 005PD, 015PD, 030PD, 060PD, 001NG, 002NG, 004NG, 005NG,
+           010NG, 020NG, 030NG, 001PG, 005PG, 015PG, 030PG, 060PG, 100PG,
+           150PG, NA]
+    $ref: /schemas/types.yaml#/definitions/string
+
+  honeywell,pmin-pascal:
+    description: |
+      Minimum pressure value the sensor can measure in pascal.
+      To be specified only if honeywell,pressure-triplet is set to "NA".
+
+  honeywell,pmax-pascal:
+    description: |
+      Maximum pressure value the sensor can measure in pascal.
+      To be specified only if honeywell,pressure-triplet is set to "NA".
+
+  vdd-supply:
+    description:
+      Provide VDD power to the sensor (either 3.3V or 5V depending on the chip)
+
+  spi-max-frequency:
+    maximum: 800000
+
+required:
+  - compatible
+  - reg
+  - honeywell,transfer-function
+  - honeywell,pressure-triplet
+
+additionalProperties: false
+
+dependentSchemas:
+  honeywell,pmin-pascal:
+    properties:
+      honeywell,pressure-triplet:
+        const: NA
+  honeywell,pmax-pascal:
+    properties:
+      honeywell,pressure-triplet:
+        const: NA
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pressure@28 {
+            compatible = "honeywell,hsc030pa";
+            reg = <0x28>;
+            honeywell,transfer-function = <0>;
+            honeywell,pressure-triplet = "030PA";
+        };
+    };
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pressure@0 {
+            compatible = "honeywell,hsc030pa";
+            reg = <0>;
+            spi-max-frequency = <800000>;
+            honeywell,transfer-function = <0>;
+            honeywell,pressure-triplet = "NA";
+            honeywell,pmin-pascal = <0>;
+            honeywell,pmax-pascal = <200000>;
+        };
+    };
+...
index b31f8120f14ed837e20b68517bbc93a4c4ad7438..d9e903fbfd99ea3c7666f22b3d87851a04cc1d89 100644 (file)
@@ -53,12 +53,10 @@ properties:
   honeywell,pmin-pascal:
     description:
       Minimum pressure value the sensor can measure in pascal.
-    $ref: /schemas/types.yaml#/definitions/uint32
 
   honeywell,pmax-pascal:
     description:
       Maximum pressure value the sensor can measure in pascal.
-    $ref: /schemas/types.yaml#/definitions/uint32
 
   honeywell,transfer-function:
     description: |
index 4a55e7f25ae7cb5bdf163ee7720be100d043be88..03bb5d4fa8b5798be5b65e13b5ee5c8624a4b832 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/iio/temperature/melexis,mlx90632.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Melexis MLX90632 contactless Infra Red temperature sensor
+title: Melexis MLX90632 and MLX90635 contactless Infra Red temperature sensor
 
 maintainers:
   - Crt Mori <cmo@melexis.com>
@@ -27,9 +27,24 @@ description: |
   Since measured object emissivity effects Infra Red energy emitted,
   emissivity should be set before requesting the object temperature.
 
+  https://www.melexis.com/en/documents/documentation/datasheets/datasheet-mlx90635
+
+  MLX90635 is most suitable for consumer applications where
+  measured object temperature is in range between -20 to 100 degrees
+  Celsius with relative error of measurement 2 degree Celsius in
+  object temperature range for industrial applications, while just 0.2
+  degree Celsius for human body measurement applications. Since it can
+  operate and measure ambient temperature in range of -20 to 85 degrees
+  Celsius it is suitable also for outdoor use.
+
+  Since measured object emissivity effects Infra Red energy emitted,
+  emissivity should be set before requesting the object temperature.
+
 properties:
   compatible:
-    const: melexis,mlx90632
+    enum:
+      - melexis,mlx90632
+      - melexis,mlx90635
 
   reg:
     maxItems: 1
diff --git a/Bindings/iio/temperature/microchip,mcp9600.yaml b/Bindings/iio/temperature/microchip,mcp9600.yaml
new file mode 100644 (file)
index 0000000..d2cafa3
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/temperature/microchip,mcp9600.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip MCP9600 thermocouple EMF converter
+
+maintainers:
+  - Andrew Hepp <andrew.hepp@ahepp.dev>
+
+description:
+  https://ww1.microchip.com/downloads/en/DeviceDoc/MCP960X-Data-Sheet-20005426.pdf
+
+properties:
+  compatible:
+    const: microchip,mcp9600
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 6
+
+  interrupt-names:
+    minItems: 1
+    maxItems: 6
+    items:
+      enum:
+        - open-circuit
+        - short-circuit
+        - alert1
+        - alert2
+        - alert3
+        - alert4
+
+  thermocouple-type:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Type of thermocouple (THERMOCOUPLE_TYPE_K if omitted).
+      Use defines in dt-bindings/iio/temperature/thermocouple.h.
+      Supported types are B, E, J, K, N, R, S, T.
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/iio/temperature/thermocouple.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        temperature-sensor@60 {
+            compatible = "microchip,mcp9600";
+            reg = <0x60>;
+            interrupt-parent = <&gpio>;
+            interrupts = <25 IRQ_TYPE_EDGE_RISING>;
+            interrupt-names = "open-circuit";
+            thermocouple-type = <THERMOCOUPLE_TYPE_K>;
+            vdd-supply = <&vdd>;
+        };
+    };
index d9002a3a0abb369dbaad2da74f09250d9e3b618d..cc1fbdc056572693b1171b92cddb1397f9e0f7bb 100644 (file)
@@ -4,6 +4,7 @@
    :maxdepth: 1
 
    ABI
+   dts-coding-style
    writing-bindings
    writing-schema
    submitting-patches
diff --git a/Bindings/input/adafruit,seesaw-gamepad.yaml b/Bindings/input/adafruit,seesaw-gamepad.yaml
new file mode 100644 (file)
index 0000000..5e86f6d
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/adafruit,seesaw-gamepad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Adafruit Mini I2C Gamepad with seesaw
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+description: |
+  Adafruit Mini I2C Gamepad
+
+    +-----------------------------+
+    |   ___                       |
+    |  /   \               (X)    |
+    | |  S  |  __   __  (Y)   (A) |
+    |  \___/  |ST| |SE|    (B)    |
+    |                             |
+    +-----------------------------+
+
+  S -> 10-bit precision bidirectional analog joystick
+  ST -> Start
+  SE -> Select
+  X, A, B, Y -> Digital action buttons
+
+  Datasheet: https://cdn-learn.adafruit.com/downloads/pdf/gamepad-qt.pdf
+  Product page: https://www.adafruit.com/product/5743
+  Arduino Driver: https://github.com/adafruit/Adafruit_Seesaw
+
+properties:
+  compatible:
+    const: adafruit,seesaw-gamepad
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description:
+      The gamepad's IRQ pin triggers a rising edge if interrupts are enabled.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        joystick@50 {
+            compatible = "adafruit,seesaw-gamepad";
+            interrupts = <18 IRQ_TYPE_EDGE_RISING>;
+            reg = <0x50>;
+        };
+    };
index 3e2d216c6432b2aa77a3aa8717383ff17d02710e..dc4ac41f244117e9598225faa8c3dea3dd3932bd 100644 (file)
@@ -18,8 +18,9 @@ allOf:
 
 properties:
   compatible:
-    items:
-      - const: elan,ekth6915
+    enum:
+      - elan,ekth6915
+      - ilitek,ili2901
 
   reg:
     const: 0x10
index 159cd9d9fe573c7315cc5066409dae6c8c478e94..cc78c2152921308fe0cad3e29ca78a5fad08f066 100644 (file)
@@ -31,7 +31,23 @@ patternProperties:
         maxItems: 1
 
       interrupts:
-        maxItems: 1
+        oneOf:
+          - items:
+              - description: Optional key interrupt or wakeup interrupt
+          - items:
+              - description: Key interrupt
+              - description: Wakeup interrupt
+
+      interrupt-names:
+        description:
+          Optional interrupt names, can be used to specify a separate dedicated
+          wake-up interrupt in addition to the gpio irq
+        oneOf:
+          - items:
+              - enum: [ irq, wakeup ]
+          - items:
+              - const: irq
+              - const: wakeup
 
       label:
         description: Descriptive name of the key.
@@ -97,6 +113,20 @@ patternProperties:
       - required:
           - gpios
 
+    allOf:
+      - if:
+          properties:
+            interrupts:
+              minItems: 2
+          required:
+            - interrupts
+        then:
+          properties:
+            interrupt-names:
+              minItems: 2
+          required:
+            - interrupt-names
+
     dependencies:
       wakeup-event-action: [ wakeup-source ]
       linux,input-value: [ gpios ]
@@ -137,6 +167,15 @@ examples:
             linux,code = <108>;
             interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
         };
+
+        key-wakeup {
+            label = "GPIO Key WAKEUP";
+            linux,code = <143>;
+            interrupts-extended = <&intc 2 IRQ_TYPE_EDGE_FALLING>,
+                                  <&intc_wakeup 0 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "irq", "wakeup";
+            wakeup-source;
+        };
     };
 
 ...
diff --git a/Bindings/input/gpio-mouse.txt b/Bindings/input/gpio-mouse.txt
deleted file mode 100644 (file)
index 519510a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-Device-Tree bindings for GPIO attached mice
-
-This simply uses standard GPIO handles to define a simple mouse connected
-to 5-7 GPIO lines.
-
-Required properties:
-       - compatible: must be "gpio-mouse"
-       - scan-interval-ms: The scanning interval in milliseconds
-       - up-gpios: GPIO line phandle to the line indicating "up"
-       - down-gpios: GPIO line phandle to the line indicating "down"
-       - left-gpios: GPIO line phandle to the line indicating "left"
-       - right-gpios: GPIO line phandle to the line indicating "right"
-
-Optional properties:
-       - button-left-gpios: GPIO line handle to the left mouse button
-       - button-middle-gpios: GPIO line handle to the middle mouse button
-       - button-right-gpios: GPIO line handle to the right mouse button
-Example:
-
-#include <dt-bindings/gpio/gpio.h>
-
-gpio-mouse {
-       compatible = "gpio-mouse";
-       scan-interval-ms = <50>;
-       up-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
-       down-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
-       left-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
-       right-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
-       button-left-gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
-       button-middle-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-       button-right-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
-};
diff --git a/Bindings/input/gpio-mouse.yaml b/Bindings/input/gpio-mouse.yaml
new file mode 100644 (file)
index 0000000..3928ec6
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/gpio-mouse.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO attached mouse
+
+description: |
+  This simply uses standard GPIO handles to define a simple mouse connected
+  to 5-7 GPIO lines.
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+properties:
+  compatible:
+    const: gpio-mouse
+
+  scan-interval-ms:
+    maxItems: 1
+
+  up-gpios:
+    maxItems: 1
+
+  down-gpios:
+    maxItems: 1
+
+  left-gpios:
+    maxItems: 1
+
+  right-gpios:
+    maxItems: 1
+
+  button-left-gpios:
+    maxItems: 1
+
+  button-middle-gpios:
+    maxItems: 1
+
+  button-right-gpios:
+    maxItems: 1
+
+required:
+  - compatible
+  - scan-interval-ms
+  - up-gpios
+  - down-gpios
+  - left-gpios
+  - right-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    gpio-mouse {
+        compatible = "gpio-mouse";
+        scan-interval-ms = <50>;
+        up-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+        down-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+        left-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+        right-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+        button-left-gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
+        button-middle-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+        button-right-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+    };
index 3c430d38594f111126268f54774aaa4469fe1754..2c3f693b8982c4947da6f2ce6d76dd2b28add81e 100644 (file)
@@ -9,6 +9,9 @@ title: Azoteq IQS269A Capacitive Touch Controller
 maintainers:
   - Jeff LaBundy <jeff@labundy.com>
 
+allOf:
+  - $ref: input.yaml#
+
 description: |
   The Azoteq IQS269A is an 8-channel capacitive touch controller that features
   additional Hall-effect and inductive sensing capabilities.
@@ -17,7 +20,10 @@ description: |
 
 properties:
   compatible:
-    const: azoteq,iqs269a
+    enum:
+      - azoteq,iqs269a
+      - azoteq,iqs269a-00
+      - azoteq,iqs269a-d0
 
   reg:
     maxItems: 1
@@ -204,6 +210,73 @@ properties:
     default: 1
     description: Specifies the slider coordinate filter strength.
 
+  azoteq,touch-hold-ms:
+    multipleOf: 256
+    minimum: 256
+    maximum: 65280
+    default: 5120
+    description:
+      Specifies the length of time (in ms) for which the channel selected by
+      'azoteq,gpio3-select' must be held in a state of touch in order for an
+      approximately 60-ms pulse to be asserted on the GPIO4 pin.
+
+  linux,keycodes:
+    minItems: 1
+    maxItems: 8
+    description: |
+      Specifies the numeric keycodes associated with each available gesture in
+      the following order (enter 0 for unused gestures):
+      0: Slider 0 tap
+      1: Slider 0 hold
+      2: Slider 0 positive flick or swipe
+      3: Slider 0 negative flick or swipe
+      4: Slider 1 tap
+      5: Slider 1 hold
+      6: Slider 1 positive flick or swipe
+      7: Slider 1 negative flick or swipe
+
+  azoteq,gesture-swipe:
+    type: boolean
+    description:
+      Directs the device to interpret axial gestures as a swipe (finger remains
+      on slider) instead of a flick (finger leaves slider).
+
+  azoteq,timeout-tap-ms:
+    multipleOf: 16
+    minimum: 0
+    maximum: 4080
+    default: 400
+    description:
+      Specifies the length of time (in ms) within which a slider touch must be
+      released in order to be interpreted as a tap. Default and maximum values
+      as well as step size are reduced by a factor of 4 with device version 2.
+
+  azoteq,timeout-swipe-ms:
+    multipleOf: 16
+    minimum: 0
+    maximum: 4080
+    default: 2000
+    description:
+      Specifies the length of time (in ms) within which an axial gesture must be
+      completed in order to be interpreted as a flick or swipe. Default and max-
+      imum values as well as step size are reduced by a factor of 4 with device
+      version 2.
+
+  azoteq,thresh-swipe:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 255
+    default: 128
+    description:
+      Specifies the number of points across which an axial gesture must travel
+      in order to be interpreted as a flick or swipe.
+
+dependencies:
+  azoteq,gesture-swipe: ["linux,keycodes"]
+  azoteq,timeout-tap-ms: ["linux,keycodes"]
+  azoteq,timeout-swipe-ms: ["linux,keycodes"]
+  azoteq,thresh-swipe: ["linux,keycodes"]
+
 patternProperties:
   "^channel@[0-7]$":
     type: object
@@ -454,6 +527,21 @@ patternProperties:
 
     additionalProperties: false
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - azoteq,iqs269a-d0
+then:
+  patternProperties:
+    "^channel@[0-7]$":
+      properties:
+        azoteq,slider1-select: false
+else:
+  properties:
+    azoteq,touch-hold-ms: false
+
 required:
   - compatible
   - reg
@@ -484,6 +572,14 @@ examples:
                     azoteq,hall-enable;
                     azoteq,suspend-mode = <2>;
 
+                    linux,keycodes = <KEY_PLAYPAUSE>,
+                                     <KEY_STOPCD>,
+                                     <KEY_NEXTSONG>,
+                                     <KEY_PREVIOUSSONG>;
+
+                    azoteq,timeout-tap-ms = <400>;
+                    azoteq,timeout-swipe-ms = <800>;
+
                     channel@0 {
                             reg = <0x0>;
 
index e34c9e78d38d8c0d65043ec24438681fe59119ef..70567d92c746ef8bc54eca9652b4f69fb579e74c 100644 (file)
@@ -90,26 +90,4 @@ required:
 
 unevaluatedProperties: false
 
-examples:
-  - |
-    #include <dt-bindings/input/input.h>
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-
-    pmic {
-        compatible = "mediatek,mt6397";
-
-        keys {
-          compatible = "mediatek,mt6397-keys";
-          mediatek,long-press-mode = <1>;
-          power-off-time-sec = <0>;
-
-          key-power {
-            linux,keycodes = <KEY_POWER>;
-            wakeup-source;
-          };
-
-          key-home {
-            linux,keycodes = <KEY_VOLUMEDOWN>;
-          };
-        };
-    };
+...
index 5b5d4f7d34827a12550df3d1480474b69caece2e..7ade03f1b32b8108f053523ce2a170fb55a54b3b 100644 (file)
@@ -45,13 +45,13 @@ properties:
       Enables the Linux input system's autorepeat feature on the input device.
 
   linux,keycodes:
-    minItems: 6
-    maxItems: 6
+    minItems: 3
+    maxItems: 8
     description: |
       Specifies an array of numeric keycode values to
       be used for the channels. If this property is
       omitted, KEY_A, KEY_B, etc are used as defaults.
-      The array must have exactly six entries.
+      The number of entries must correspond to the number of channels.
 
   microchip,sensor-gain:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -70,6 +70,59 @@ properties:
       open drain. This property allows using the active
       high push-pull output.
 
+  microchip,sensitivity-delta-sense:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 32
+    enum: [1, 2, 4, 8, 16, 32, 64, 128]
+    description:
+      Controls the sensitivity multiplier of a touch detection.
+      Higher value means more sensitive settings.
+      At the more sensitive settings, touches are detected for a smaller delta
+      capacitance corresponding to a "lighter" touch.
+
+  microchip,signal-guard:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 3
+    maxItems: 8
+    items:
+      enum: [0, 1]
+    description: |
+      0 - off
+      1 - on
+      The signal guard isolates the signal from virtual grounds.
+      If enabled then the behavior of the channel is changed to signal guard.
+      The number of entries must correspond to the number of channels.
+
+  microchip,input-threshold:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 3
+    maxItems: 8
+    items:
+      minimum: 0
+      maximum: 127
+    description:
+      Specifies the delta threshold that is used to determine if a touch has
+      been detected. A higher value means a larger difference in capacitance
+      is required for a touch to be registered, making the touch sensor less
+      sensitive.
+      The number of entries must correspond to the number of channels.
+
+  microchip,calib-sensitivity:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 3
+    maxItems: 8
+    items:
+      enum: [1, 2, 4]
+    description: |
+      Specifies an array of numeric values that controls the gain
+      used by the calibration routine to enable sensor inputs
+      to be more sensitive for proximity detection.
+      Gain is based on touch pad capacitance range
+      1 - 5-50pF
+      2 - 0-25pF
+      4 - 0-12.5pF
+      The number of entries must correspond to the number of channels.
+
 patternProperties:
   "^led@[0-7]$":
     type: object
@@ -99,10 +152,29 @@ allOf:
           contains:
             enum:
               - microchip,cap1106
+              - microchip,cap1203
+              - microchip,cap1206
+              - microchip,cap1293
+              - microchip,cap1298
     then:
       patternProperties:
         "^led@[0-7]$": false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,cap1106
+              - microchip,cap1126
+              - microchip,cap1188
+              - microchip,cap1203
+              - microchip,cap1206
+    then:
+      properties:
+        microchip,signal-guard: false
+        microchip,calib-sensitivity: false
+
 required:
   - compatible
   - interrupts
@@ -122,6 +194,8 @@ examples:
         reg = <0x28>;
         autorepeat;
         microchip,sensor-gain = <2>;
+        microchip,sensitivity-delta-sense = <16>;
+        microchip,input-threshold = <21>, <18>, <46>, <46>, <46>, <21>;
 
         linux,keycodes = <103>,        /* KEY_UP */
                          <106>,        /* KEY_RIGHT */
index a401a0bfcbec21e098e4fe7bf9b85410d6ea83a8..4c8d303ff93c949f63926e544b2023e6bb8d492f 100644 (file)
@@ -28,21 +28,4 @@ required:
 
 additionalProperties: false
 
-examples:
-  - |
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    sc2731_pmic: pmic@0 {
-      compatible = "sprd,sc2731";
-      reg = <0 0>;
-      spi-max-frequency = <26000000>;
-      interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-      interrupt-controller;
-      #interrupt-cells = <2>;
-      #address-cells = <1>;
-      #size-cells = <0>;
-
-      vibrator@eb4 {
-        compatible = "sprd,sc2731-vibrator";
-        reg = <0xeb4>;
-      };
-    };
+...
diff --git a/Bindings/input/ti,drv2665.txt b/Bindings/input/ti,drv2665.txt
deleted file mode 100644 (file)
index 1ba97ac..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-* Texas Instruments - drv2665 Haptics driver
-
-Required properties:
-       - compatible - "ti,drv2665" - DRV2665
-       - reg -  I2C slave address
-       - vbat-supply - Required supply regulator
-
-Example:
-
-haptics: haptics@59 {
-       compatible = "ti,drv2665";
-       reg = <0x59>;
-       vbat-supply = <&vbat>;
-};
-
-For more product information please see the link below:
-http://www.ti.com/product/drv2665
diff --git a/Bindings/input/ti,drv2667.txt b/Bindings/input/ti,drv2667.txt
deleted file mode 100644 (file)
index 996382c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-* Texas Instruments - drv2667 Haptics driver
-
-Required properties:
-       - compatible - "ti,drv2667" - DRV2667
-       - reg -  I2C slave address
-       - vbat-supply - Required supply regulator
-
-Example:
-
-haptics: haptics@59 {
-       compatible = "ti,drv2667";
-       reg = <0x59>;
-       vbat-supply = <&vbat>;
-};
-
-For more product information please see the link below:
-http://www.ti.com/product/drv2667
diff --git a/Bindings/input/ti,drv266x.yaml b/Bindings/input/ti,drv266x.yaml
new file mode 100644 (file)
index 0000000..da18188
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ti,drv266x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments - drv266x Haptics driver
+
+description: |
+  Product Page:
+    http://www.ti.com/product/drv2665
+    http://www.ti.com/product/drv2667
+
+maintainers:
+  - Anshul Dalal <anshulusr@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - ti,drv2665
+      - ti,drv2667
+
+  reg:
+    maxItems: 1
+
+  vbat-supply:
+    description: Required supply regulator
+
+required:
+  - compatible
+  - reg
+  - vbat-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        haptics@59 {
+            compatible = "ti,drv2667";
+            reg = <0x59>;
+            vbat-supply = <&vbat>;
+        };
+    };
diff --git a/Bindings/input/touchscreen/neonode,zforce.yaml b/Bindings/input/touchscreen/neonode,zforce.yaml
new file mode 100644 (file)
index 0000000..c2ee89b
--- /dev/null
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/neonode,zforce.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Neonode infrared touchscreen controller
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  compatible:
+    const: neonode,zforce
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  irq-gpios:
+    maxItems: 1
+
+  x-size:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  y-size:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@50 {
+            compatible = "neonode,zforce";
+            reg = <0x50>;
+            interrupts = <2 0>;
+            vdd-supply = <&reg_zforce_vdd>;
+
+            reset-gpios = <&gpio5 9 0>; /* RST */
+            irq-gpios = <&gpio5 6 0>; /* IRQ, optional */
+
+            touchscreen-min-x = <0>;
+            touchscreen-size-x = <800>;
+            touchscreen-min-y = <0>;
+            touchscreen-size-y = <600>;
+        };
+    };
+...
diff --git a/Bindings/input/touchscreen/samsung,s6sy761.txt b/Bindings/input/touchscreen/samsung,s6sy761.txt
deleted file mode 100644 (file)
index 6805d10..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-* Samsung S6SY761 touchscreen controller
-
-Required properties:
-- compatible           : must be "samsung,s6sy761"
-- reg                  : I2C slave address, (e.g. 0x48)
-- interrupts           : interrupt specification
-- avdd-supply          : analogic power supply
-- vdd-supply           : power supply
-
-Optional properties:
-- touchscreen-size-x   : see touchscreen.txt. This property is embedded in the
-                         device. If defined it forces a different x resolution.
-- touchscreen-size-y   : see touchscreen.txt. This property is embedded in the
-                         device. If defined it forces a different y resolution.
-
-Example:
-
-i2c@00000000 {
-
-       /* ... */
-
-       touchscreen@48 {
-               compatible = "samsung,s6sy761";
-               reg = <0x48>;
-               interrupt-parent = <&gpa1>;
-               interrupts = <1 IRQ_TYPE_NONE>;
-               avdd-supply = <&ldo30_reg>;
-               vdd-supply = <&ldo31_reg>;
-               touchscreen-size-x = <4096>;
-               touchscreen-size-y = <4096>;
-       };
-};
diff --git a/Bindings/input/touchscreen/samsung,s6sy761.yaml b/Bindings/input/touchscreen/samsung,s6sy761.yaml
new file mode 100644 (file)
index 0000000..1ffd17a
--- /dev/null
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/samsung,s6sy761.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S6SY761 touchscreen controller
+
+maintainers:
+  - Andi Shyti <andi.shyti@kernel.org>
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  compatible:
+    const: samsung,s6sy761
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  avdd-supply: true
+  vdd-supply: true
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - avdd-supply
+  - vdd-supply
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@48 {
+            compatible = "samsung,s6sy761";
+            reg = <0x48>;
+            interrupt-parent = <&gpa1>;
+            interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
+            avdd-supply = <&ldo30_reg>;
+            vdd-supply = <&ldo31_reg>;
+            touchscreen-size-x = <4096>;
+            touchscreen-size-y = <4096>;
+        };
+    };
diff --git a/Bindings/input/touchscreen/zforce_ts.txt b/Bindings/input/touchscreen/zforce_ts.txt
deleted file mode 100644 (file)
index e3c27c4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-* Neonode infrared touchscreen controller
-
-Required properties:
-- compatible: must be "neonode,zforce"
-- reg: I2C address of the chip
-- interrupts: interrupt to which the chip is connected
-- reset-gpios: reset gpio the chip is connected to
-- x-size: horizontal resolution of touchscreen
-- y-size: vertical resolution of touchscreen
-
-Optional properties:
-- irq-gpios : interrupt gpio the chip is connected to
-- vdd-supply: Regulator controlling the controller supply
-
-Example:
-
-       i2c@00000000 {
-               /* ... */
-
-               zforce_ts@50 {
-                       compatible = "neonode,zforce";
-                       reg = <0x50>;
-                       interrupts = <2 0>;
-                       vdd-supply = <&reg_zforce_vdd>;
-
-                       reset-gpios = <&gpio5 9 0>; /* RST */
-                       irq-gpios = <&gpio5 6 0>; /* IRQ, optional */
-
-                       x-size = <800>;
-                       y-size = <600>;
-               };
-
-               /* ... */
-       };
index 73f809cdb783cf6026c59e39cb128136f36b7d49..05067e197abe810a8dd2457f6056b6eff3e5387c 100644 (file)
@@ -25,13 +25,16 @@ properties:
       - const: qcom,msm8998-bwmon       # BWMON v4
       - items:
           - enum:
+              - qcom,qcm2290-cpu-bwmon
               - qcom,sc7180-cpu-bwmon
               - qcom,sc7280-cpu-bwmon
               - qcom,sc8280xp-cpu-bwmon
               - qcom,sdm845-cpu-bwmon
+              - qcom,sm6115-cpu-bwmon
               - qcom,sm6350-llcc-bwmon
               - qcom,sm8250-cpu-bwmon
               - qcom,sm8550-cpu-bwmon
+              - qcom,sm8650-cpu-bwmon
           - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
       - items:
           - enum:
@@ -40,6 +43,7 @@ properties:
               - qcom,sm6350-cpu-bwmon
               - qcom,sm8250-llcc-bwmon
               - qcom,sm8550-llcc-bwmon
+              - qcom,sm8650-llcc-bwmon
           - const: qcom,sc7280-llcc-bwmon
       - const: qcom,sc7280-llcc-bwmon   # BWMON v5
       - const: qcom,sdm845-llcc-bwmon   # BWMON v5
diff --git a/Bindings/interconnect/qcom,sm6115.yaml b/Bindings/interconnect/qcom,sm6115.yaml
new file mode 100644 (file)
index 0000000..14b1a0b
--- /dev/null
@@ -0,0 +1,152 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,sm6115.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM6115 Network-On-Chip interconnect
+
+maintainers:
+  - Konrad Dybcio <konradybcio@kernel.org>
+
+description:
+  The Qualcomm SM6115 interconnect providers support adjusting the
+  bandwidth requirements between the various NoC fabrics.
+
+properties:
+  compatible:
+    enum:
+      - qcom,sm6115-bimc
+      - qcom,sm6115-cnoc
+      - qcom,sm6115-snoc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 4
+
+  clock-names:
+    minItems: 1
+    maxItems: 4
+
+# Child node's properties
+patternProperties:
+  '^interconnect-[a-z0-9]+$':
+    type: object
+    description:
+      The interconnect providers do not have a separate QoS register space,
+      but share parent's space.
+
+    $ref: qcom,rpm-common.yaml#
+
+    properties:
+      compatible:
+        enum:
+          - qcom,sm6115-clk-virt
+          - qcom,sm6115-mmrt-virt
+          - qcom,sm6115-mmnrt-virt
+
+    required:
+      - compatible
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: qcom,rpm-common.yaml#
+  - if:
+      properties:
+        compatible:
+          const: qcom,sm6115-cnoc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: USB-NoC AXI clock
+
+        clock-names:
+          items:
+            - const: usb_axi
+
+  - if:
+      properties:
+        compatible:
+          const: qcom,sm6115-snoc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: CPU-NoC AXI clock.
+            - description: UFS-NoC AXI clock.
+            - description: USB-NoC AXI clock.
+            - description: IPA clock.
+
+        clock-names:
+          items:
+            - const: cpu_axi
+            - const: ufs_axi
+            - const: usb_axi
+            - const: ipa
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sm6115-bimc
+            - qcom,sm6115-clk-virt
+            - qcom,sm6115-mmrt-virt
+            - qcom,sm6115-mmnrt-virt
+
+    then:
+      properties:
+        clocks: false
+        clock-names: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sm6115.h>
+    #include <dt-bindings/clock/qcom,rpmcc.h>
+
+    snoc: interconnect@1880000 {
+        compatible = "qcom,sm6115-snoc";
+        reg = <0x01880000 0x60200>;
+        clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
+                 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
+                 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
+                 <&rpmcc RPM_SMD_IPA_CLK>;
+        clock-names = "cpu_axi",
+                      "ufs_axi",
+                      "usb_axi",
+                      "ipa";
+        #interconnect-cells = <1>;
+
+        qup_virt: interconnect-clk {
+            compatible = "qcom,sm6115-clk-virt";
+            #interconnect-cells = <1>;
+        };
+
+        mmnrt_virt: interconnect-mmnrt {
+            compatible = "qcom,sm6115-mmnrt-virt";
+            #interconnect-cells = <1>;
+        };
+
+        mmrt_virt: interconnect-mmrt {
+            compatible = "qcom,sm6115-mmrt-virt";
+            #interconnect-cells = <1>;
+        };
+    };
+
+    cnoc: interconnect@1900000 {
+        compatible = "qcom,sm6115-cnoc";
+        reg = <0x01900000 0x8200>;
+        #interconnect-cells = <1>;
+    };
diff --git a/Bindings/interconnect/qcom,sm8650-rpmh.yaml b/Bindings/interconnect/qcom,sm8650-rpmh.yaml
new file mode 100644 (file)
index 0000000..f9322de
--- /dev/null
@@ -0,0 +1,136 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,sm8650-rpmh.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm RPMh Network-On-Chip Interconnect on SM8650
+
+maintainers:
+  - Abel Vesa <abel.vesa@linaro.org>
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+description: |
+  RPMh interconnect providers support system bandwidth requirements through
+  RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
+  able to communicate with the BCM through the Resource State Coordinator (RSC)
+  associated with each execution environment. Provider nodes must point to at
+  least one RPMh device child node pertaining to their RSC and each provider
+  can map to multiple RPMh resources.
+
+  See also:: include/dt-bindings/interconnect/qcom,sm8650-rpmh.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,sm8650-aggre1-noc
+      - qcom,sm8650-aggre2-noc
+      - qcom,sm8650-clk-virt
+      - qcom,sm8650-cnoc-main
+      - qcom,sm8650-config-noc
+      - qcom,sm8650-gem-noc
+      - qcom,sm8650-lpass-ag-noc
+      - qcom,sm8650-lpass-lpiaon-noc
+      - qcom,sm8650-lpass-lpicx-noc
+      - qcom,sm8650-mc-virt
+      - qcom,sm8650-mmss-noc
+      - qcom,sm8650-nsp-noc
+      - qcom,sm8650-pcie-anoc
+      - qcom,sm8650-system-noc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+required:
+  - compatible
+
+allOf:
+  - $ref: qcom,rpmh-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8650-clk-virt
+              - qcom,sm8650-mc-virt
+    then:
+      properties:
+        reg: false
+    else:
+      required:
+        - reg
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8650-pcie-anoc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: aggre-NOC PCIe AXI clock
+            - description: cfg-NOC PCIe a-NOC AHB clock
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8650-aggre1-noc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: aggre UFS PHY AXI clock
+            - description: aggre USB3 PRIM AXI clock
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8650-aggre2-noc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: RPMH CC IPA clock
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8650-aggre1-noc
+              - qcom,sm8650-aggre2-noc
+              - qcom,sm8650-pcie-anoc
+    then:
+      required:
+        - clocks
+    else:
+      properties:
+        clocks: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    clk_virt: interconnect-0 {
+      compatible = "qcom,sm8650-clk-virt";
+      #interconnect-cells = <2>;
+      qcom,bcm-voters = <&apps_bcm_voter>;
+    };
+
+    aggre1_noc: interconnect@16e0000 {
+      compatible = "qcom,sm8650-aggre1-noc";
+      reg = <0x016e0000 0x14400>;
+      #interconnect-cells = <2>;
+      clocks = <&gcc_phy_axi_clk>, <&gcc_prim_axi_clk>;
+      qcom,bcm-voters = <&apps_bcm_voter>;
+    };
diff --git a/Bindings/interconnect/qcom,x1e80100-rpmh.yaml b/Bindings/interconnect/qcom,x1e80100-rpmh.yaml
new file mode 100644 (file)
index 0000000..08b0210
--- /dev/null
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,x1e80100-rpmh.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm RPMh Network-On-Chip Interconnect on X1E80100
+
+maintainers:
+  - Rajendra Nayak <quic_rjendra@quicinc.com>
+  - Abel Vesa <abel.vesa@linaro.org>
+
+description: |
+  RPMh interconnect providers support system bandwidth requirements through
+  RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
+  able to communicate with the BCM through the Resource State Coordinator (RSC)
+  associated with each execution environment. Provider nodes must point to at
+  least one RPMh device child node pertaining to their RSC and each provider
+  can map to multiple RPMh resources.
+
+  See also:: include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,x1e80100-aggre1-noc
+      - qcom,x1e80100-aggre2-noc
+      - qcom,x1e80100-clk-virt
+      - qcom,x1e80100-cnoc-cfg
+      - qcom,x1e80100-cnoc-main
+      - qcom,x1e80100-gem-noc
+      - qcom,x1e80100-lpass-ag-noc
+      - qcom,x1e80100-lpass-lpiaon-noc
+      - qcom,x1e80100-lpass-lpicx-noc
+      - qcom,x1e80100-mc-virt
+      - qcom,x1e80100-mmss-noc
+      - qcom,x1e80100-nsp-noc
+      - qcom,x1e80100-pcie-center-anoc
+      - qcom,x1e80100-pcie-north-anoc
+      - qcom,x1e80100-pcie-south-anoc
+      - qcom,x1e80100-system-noc
+      - qcom,x1e80100-usb-center-anoc
+      - qcom,x1e80100-usb-north-anoc
+      - qcom,x1e80100-usb-south-anoc
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+
+allOf:
+  - $ref: qcom,rpmh-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,x1e80100-clk-virt
+              - qcom,x1e80100-mc-virt
+    then:
+      properties:
+        reg: false
+    else:
+      required:
+        - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    clk_virt: interconnect-0 {
+      compatible = "qcom,x1e80100-clk-virt";
+      #interconnect-cells = <2>;
+      qcom,bcm-voters = <&apps_bcm_voter>;
+    };
+
+    aggre1_noc: interconnect@16e0000 {
+      compatible = "qcom,x1e80100-aggre1-noc";
+      reg = <0x016e0000 0x14400>;
+      #interconnect-cells = <2>;
+      qcom,bcm-voters = <&apps_bcm_voter>;
+    };
index 00b570c82903974cbaeaba09406ff0581c61d8e0..60441f0c5d7211f24b5fa536425b351767040a2d 100644 (file)
@@ -11,8 +11,13 @@ maintainers:
 
 description: |
   This interrupt controller is found in the Loongson-3 family of chips and
-  Loongson-2K1000 chip, as the primary package interrupt controller which
+  Loongson-2K series chips, as the primary package interrupt controller which
   can route local I/O interrupt to interrupt lines of cores.
+  Be aware of the following points.
+  1.The Loongson-2K0500 is a single core CPU;
+  2.The Loongson-2K0500/2K1000 has 64 device interrupt sources as inputs, so we
+    need to define two nodes in dts{i} to describe the "0-31" and "32-61" interrupt
+    sources respectively.
 
 allOf:
   - $ref: /schemas/interrupt-controller.yaml#
@@ -33,6 +38,7 @@ properties:
       - const: main
       - const: isr0
       - const: isr1
+    minItems: 2
 
   interrupt-controller: true
 
@@ -45,11 +51,9 @@ properties:
   interrupt-names:
     description: List of names for the parent interrupts.
     items:
-      - const: int0
-      - const: int1
-      - const: int2
-      - const: int3
+      pattern: int[0-3]
     minItems: 1
+    maxItems: 4
 
   '#interrupt-cells':
     const: 2
@@ -69,6 +73,7 @@ required:
   - compatible
   - reg
   - interrupts
+  - interrupt-names
   - interrupt-controller
   - '#interrupt-cells'
   - loongson,parent_int_map
@@ -86,7 +91,8 @@ if:
 then:
   properties:
     reg:
-      minItems: 3
+      minItems: 2
+      maxItems: 3
 
   required:
     - reg-names
index 6a206111d4e0f0a737a71b0615ffd3084c3d9a7d..ebb40c48950ab3a8fc86f5708acfc33c33d68993 100644 (file)
@@ -29,6 +29,12 @@ properties:
     maxItems: 1
     description:
       Specifies the base address and size of vMPM registers in RPM MSG RAM.
+    deprecated: true
+
+  qcom,rpm-msg-ram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the APSS MPM slice of the RPM Message RAM
 
   interrupts:
     maxItems: 1
@@ -67,34 +73,46 @@ properties:
 
 required:
   - compatible
-  - reg
   - interrupts
   - mboxes
   - interrupt-controller
   - '#interrupt-cells'
   - qcom,mpm-pin-count
   - qcom,mpm-pin-map
+  - qcom,rpm-msg-ram
 
 additionalProperties: false
 
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
-    mpm: interrupt-controller@45f01b8 {
-        compatible = "qcom,mpm";
-        interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
-        reg = <0x45f01b8 0x1000>;
-        mboxes = <&apcs_glb 1>;
-        interrupt-controller;
-        #interrupt-cells = <2>;
-        interrupt-parent = <&intc>;
-        qcom,mpm-pin-count = <96>;
-        qcom,mpm-pin-map = <2 275>,
-                           <5 296>,
-                           <12 422>,
-                           <24 79>,
-                           <86 183>,
-                           <90 260>,
-                           <91 260>;
-        #power-domain-cells = <0>;
+
+    remoteproc-rpm {
+        compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc";
+
+        glink-edge {
+            compatible = "qcom,glink-rpm";
+
+            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+            qcom,rpm-msg-ram = <&rpm_msg_ram>;
+            mboxes = <&apcs_glb 0>;
+        };
+
+        mpm: interrupt-controller {
+            compatible = "qcom,mpm";
+            qcom,rpm-msg-ram = <&apss_mpm>;
+            interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+            mboxes = <&apcs_glb 1>;
+            interrupt-controller;
+            #interrupt-cells = <2>;
+            interrupt-parent = <&intc>;
+            qcom,mpm-pin-count = <96>;
+            qcom,mpm-pin-map = <2 275>,
+                               <5 296>,
+                               <12 422>,
+                               <24 79>,
+                               <86 183>,
+                               <91 260>;
+            #power-domain-cells = <0>;
+        };
     };
index 86d61896f59135e963dbd2b70796dab8ac90ecc1..4bdc8321904bd043a62a09acf97f52bc224fdc75 100644 (file)
@@ -35,12 +35,16 @@ properties:
           - qcom,sdm845-pdc
           - qcom,sdx55-pdc
           - qcom,sdx65-pdc
+          - qcom,sdx75-pdc
           - qcom,sm4450-pdc
           - qcom,sm6350-pdc
           - qcom,sm8150-pdc
           - qcom,sm8250-pdc
           - qcom,sm8350-pdc
           - qcom,sm8450-pdc
+          - qcom,sm8550-pdc
+          - qcom,sm8650-pdc
+          - qcom,x1e80100-pdc
       - const: qcom,pdc
 
   reg:
index 2ef3081eaaf36aa653cdf52fd0de9ab918a418c4..d3b5aec0a3f74d83389ac7b94ad94a1dc9dabf09 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - renesas,r9a07g043u-irqc   # RZ/G2UL
           - renesas,r9a07g044-irqc    # RZ/G2{L,LC}
           - renesas,r9a07g054-irqc    # RZ/V2L
+          - renesas,r9a08g045-irqc    # RZ/G3S
       - const: renesas,rzg2l-irqc
 
   '#interrupt-cells':
@@ -167,7 +168,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: renesas,r9a07g043u-irqc
+            enum:
+              - renesas,r9a07g043u-irqc
+              - renesas,r9a08g045-irqc
     then:
       properties:
         interrupts:
index 0c07e8dda4452c9d4c3ffb1e824fbd05f792eeb7..709b2211276bd996ae0b5ca15f5bb8ad7efd759a 100644 (file)
@@ -66,6 +66,7 @@ properties:
           - enum:
               - allwinner,sun20i-d1-plic
               - sophgo,cv1800b-plic
+              - sophgo,cv1812h-plic
               - sophgo,sg2042-plic
               - thead,th1520-plic
           - const: thead,c900-plic
index 2b153d7c5421639b1a2d563460e64c0bb0055f83..e44e4e5708a722902f8caca7814f634fdc1617af 100644 (file)
@@ -55,8 +55,8 @@ examples:
   - |
     #include <dt-bindings/interrupt-controller/irq-st.h>
     irq-syscfg {
-        compatible    = "st,stih407-irq-syscfg";
-        st,syscfg     = <&syscfg_cpu>;
+        compatible = "st,stih407-irq-syscfg";
+        st,syscfg = <&syscfg_cpu>;
         st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
                         <ST_IRQ_SYSCFG_PMU_1>;
         st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
index 903edf85d72e4057d76a00e22b9ee824a4089c0c..7adb1de455a5b38dfb6c76303f11c8f95395e0dd 100644 (file)
@@ -24,6 +24,7 @@ properties:
   compatible:
     enum:
       - apple,t8103-dart
+      - apple,t8103-usb4-dart
       - apple,t8110-dart
       - apple,t6000-dart
 
index aa9e1c0895a508a2e6eed5831a73e92de06df9d4..a4042ae2477024b0230d7db843c74f6b1da7d732 100644 (file)
@@ -56,6 +56,8 @@ properties:
               - qcom,sm8350-smmu-500
               - qcom,sm8450-smmu-500
               - qcom,sm8550-smmu-500
+              - qcom,sm8650-smmu-500
+              - qcom,x1e80100-smmu-500
           - const: qcom,smmu-500
           - const: arm,mmu-500
 
@@ -89,6 +91,8 @@ properties:
               - qcom,sm8150-smmu-500
               - qcom,sm8250-smmu-500
               - qcom,sm8350-smmu-500
+              - qcom,sm8450-smmu-500
+              - qcom,sm8550-smmu-500
           - const: qcom,adreno-smmu
           - const: qcom,smmu-500
           - const: arm,mmu-500
@@ -429,6 +433,30 @@ allOf:
             - description: interface clock required to access smmu's registers
                 through the TCU's programming interface.
 
+  - if:
+      properties:
+        compatible:
+          items:
+            - enum:
+                - qcom,sm8350-smmu-500
+            - const: qcom,adreno-smmu
+            - const: qcom,smmu-500
+            - const: arm,mmu-500
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: bus
+            - const: iface
+            - const: ahb
+            - const: hlos1_vote_gpu_smmu
+            - const: cx_gmu
+            - const: hub_cx_int
+            - const: hub_aon
+        clocks:
+          minItems: 7
+          maxItems: 7
+
   - if:
       properties:
         compatible:
@@ -453,6 +481,50 @@ allOf:
             - description: Voter clock required for HLOS SMMU access
             - description: Interface clock required for register access
 
+  - if:
+      properties:
+        compatible:
+          const: qcom,sm8450-smmu-500
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: gmu
+            - const: hub
+            - const: hlos
+            - const: bus
+            - const: iface
+            - const: ahb
+
+        clocks:
+          items:
+            - description: GMU clock
+            - description: GPU HUB clock
+            - description: HLOS vote clock
+            - description: GPU memory bus clock
+            - description: GPU SNoC bus clock
+            - description: GPU AHB clock
+
+  - if:
+      properties:
+        compatible:
+          const: qcom,sm8550-smmu-500
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: hlos
+            - const: bus
+            - const: iface
+            - const: ahb
+
+        clocks:
+          items:
+            - description: HLOS vote clock
+            - description: GPU memory bus clock
+            - description: GPU SNoC bus clock
+            - description: GPU AHB clock
+
   # Disallow clocks for all other platforms with specific compatibles
   - if:
       properties:
@@ -472,9 +544,8 @@ allOf:
               - qcom,sdx65-smmu-500
               - qcom,sm6350-smmu-500
               - qcom,sm6375-smmu-500
-              - qcom,sm8350-smmu-500
-              - qcom,sm8450-smmu-500
-              - qcom,sm8550-smmu-500
+              - qcom,sm8650-smmu-500
+              - qcom,x1e80100-smmu-500
     then:
       properties:
         clock-names: false
index ba9124f721f1514759d5a63c2036283a04e1d0aa..621dde0e45d8514cfcfe5a0cdd17f87a08ada5bc 100644 (file)
@@ -19,9 +19,14 @@ description: |+
 
 properties:
   compatible:
-    enum:
-      - rockchip,iommu
-      - rockchip,rk3568-iommu
+    oneOf:
+      - enum:
+          - rockchip,iommu
+          - rockchip,rk3568-iommu
+      - items:
+          - enum:
+              - rockchip,rk3588-iommu
+          - const: rockchip,rk3568-iommu
 
   reg:
     items:
diff --git a/Bindings/leds/allwinner,sun50i-a100-ledc.yaml b/Bindings/leds/allwinner,sun50i-a100-ledc.yaml
new file mode 100644 (file)
index 0000000..760cb33
--- /dev/null
@@ -0,0 +1,137 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/allwinner,sun50i-a100-ledc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A100 LED Controller
+
+maintainers:
+  - Samuel Holland <samuel@sholland.org>
+
+description:
+  The LED controller found in Allwinner sunxi SoCs uses a one-wire serial
+  interface to drive up to 1024 RGB LEDs.
+
+properties:
+  compatible:
+    oneOf:
+      - const: allwinner,sun50i-a100-ledc
+      - items:
+          - enum:
+              - allwinner,sun20i-d1-ledc
+              - allwinner,sun50i-r329-ledc
+          - const: allwinner,sun50i-a100-ledc
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Bus clock
+      - description: Module clock
+
+  clock-names:
+    items:
+      - const: bus
+      - const: mod
+
+  resets:
+    maxItems: 1
+
+  dmas:
+    maxItems: 1
+    description: TX DMA channel
+
+  dma-names:
+    const: tx
+
+  allwinner,pixel-format:
+    description: Pixel format (subpixel transmission order), default is "grb"
+    enum:
+      - bgr
+      - brg
+      - gbr
+      - grb
+      - rbg
+      - rgb
+
+  allwinner,t0h-ns:
+    default: 336
+    description: Length of high pulse when transmitting a "0" bit
+
+  allwinner,t0l-ns:
+    default: 840
+    description: Length of low pulse when transmitting a "0" bit
+
+  allwinner,t1h-ns:
+    default: 882
+    description: Length of high pulse when transmitting a "1" bit
+
+  allwinner,t1l-ns:
+    default: 294
+    description: Length of low pulse when transmitting a "1" bit
+
+  allwinner,treset-ns:
+    default: 300000
+    description: Minimum delay between transmission frames
+
+patternProperties:
+  "^multi-led@[0-9a-f]+$":
+    type: object
+    $ref: leds-class-multicolor.yaml#
+    unevaluatedProperties: false
+    properties:
+      reg:
+        minimum: 0
+        maximum: 1023
+        description: Index of the LED in the series (must be contiguous)
+
+    required:
+      - reg
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+
+    ledc: led-controller@2008000 {
+      compatible = "allwinner,sun20i-d1-ledc",
+                   "allwinner,sun50i-a100-ledc";
+      reg = <0x2008000 0x400>;
+      interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&ccu 12>, <&ccu 34>;
+      clock-names = "bus", "mod";
+      resets = <&ccu 12>;
+      dmas = <&dma 42>;
+      dma-names = "tx";
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      multi-led@0 {
+        reg = <0x0>;
+        color = <LED_COLOR_ID_RGB>;
+        function = LED_FUNCTION_INDICATOR;
+      };
+    };
+
+...
index feb5febaf361aef71a2b419d0fe50adc21c67c62..54d6d1f08e2489d91d104a89df31cbc31e823f2c 100644 (file)
@@ -10,15 +10,19 @@ maintainers:
   - Martin Kurbanov <mmkurbanov@sberdevices.ru>
 
 description: |
-  This controller is present on AW20036/AW20054/AW20072.
-  It is a 3x12/6x9/6x12 matrix LED programmed via
-  an I2C interface, up to 36/54/72 LEDs or 12/18/24 RGBs,
-  3 pattern controllers for auto breathing or group dimming control.
+  It is a matrix LED driver programmed via an I2C interface. Devices have
+  a set of individually controlled leds and support 3 pattern controllers
+  for auto breathing or group dimming control. Supported devices:
+    - AW20036 (3x12) 36 LEDs
+    - AW20054 (6x9)  54 LEDs
+    - AW20072 (6x12) 72 LEDs
+    - AW20108 (9x12) 108 LEDs
 
   For more product information please see the link below:
   aw20036 - https://www.awinic.com/en/productDetail/AW20036QNR#tech-docs
   aw20054 - https://www.awinic.com/en/productDetail/AW20054QNR#tech-docs
   aw20072 - https://www.awinic.com/en/productDetail/AW20072QNR#tech-docs
+  aw20108 - https://www.awinic.com/en/productDetail/AW20108QNR#tech-docs
 
 properties:
   compatible:
@@ -26,6 +30,7 @@ properties:
       - awinic,aw20036
       - awinic,aw20054
       - awinic,aw20072
+      - awinic,aw20108
 
   reg:
     maxItems: 1
@@ -36,13 +41,11 @@ properties:
   "#size-cells":
     const: 0
 
-  awinic,display-rows:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description:
-      Leds matrix size
+  enable-gpios:
+    maxItems: 1
 
 patternProperties:
-  "^led@[0-9a-f]$":
+  "^led@[0-9a-f]+$":
     type: object
     $ref: common.yaml#
     unevaluatedProperties: false
@@ -60,16 +63,11 @@ patternProperties:
           since the chip has a single global setting.
           The maximum output current of each LED is calculated by the
           following formula:
-            IMAXled = 160000 * (592 / 600.5) * (1 / display-rows)
+            IMAXled = 160000 * (592 / 600.5) * (1 / max-current-switch-number)
           And the minimum output current formula:
-            IMINled = 3300 * (592 / 600.5) * (1 / display-rows)
-
-required:
-  - compatible
-  - reg
-  - "#address-cells"
-  - "#size-cells"
-  - awinic,display-rows
+            IMINled = 3300 * (592 / 600.5) * (1 / max-current-switch-number)
+          where max-current-switch-number is determinated by led configuration
+          and depends on how leds are physically connected to the led driver.
 
 allOf:
   - if:
@@ -78,18 +76,67 @@ allOf:
           contains:
             const: awinic,aw20036
     then:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              items:
+                minimum: 0
+                maximum: 36
+
+  - if:
       properties:
-        awinic,display-rows:
-          enum: [1, 2, 3]
-    else:
+        compatible:
+          contains:
+            const: awinic,aw20054
+    then:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              items:
+                minimum: 0
+                maximum: 54
+
+  - if:
       properties:
-        awinic,display-rows:
-          enum: [1, 2, 3, 4, 5, 6, 7]
+        compatible:
+          contains:
+            const: awinic,aw20072
+    then:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              items:
+                minimum: 0
+                maximum: 72
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: awinic,aw20108
+    then:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              items:
+                minimum: 0
+                maximum: 108
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
 
 additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/leds/common.h>
 
     i2c {
@@ -101,7 +148,7 @@ examples:
             reg = <0x3a>;
             #address-cells = <1>;
             #size-cells = <0>;
-            awinic,display-rows = <3>;
+            enable-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
 
             led@0 {
                 reg = <0x0>;
index 4191e33626f51ad3ccb5843e61caeb83eafea193..527a37368ed7422ae605d693e95b2765fa15246d 100644 (file)
@@ -14,8 +14,8 @@ description: |
   programmable switching frequency to optimize efficiency.
   It supports two different dimming modes:
 
-  - analog mode, via I2C commands (default)
-  - PWM controlled mode.
+  - analog mode, via I2C commands, as default mode (32 dimming levels)
+  - PWM controlled mode (optional)
 
   The datasheet is available at:
   https://www.monolithicpower.com/en/mp3309c.html
@@ -50,8 +50,6 @@ properties:
 required:
   - compatible
   - reg
-  - max-brightness
-  - default-brightness
 
 unevaluatedProperties: false
 
@@ -66,8 +64,8 @@ examples:
             compatible = "mps,mp3309c";
             reg = <0x17>;
             pwms = <&pwm1 0 3333333 0>; /* 300 Hz --> (1/f) * 1*10^9 */
-            max-brightness = <100>;
-            default-brightness = <80>;
+            brightness-levels = <0 4 8 16 32 64 128 255>;
+            default-brightness = <6>;
             mps,overvoltage-protection-microvolt = <24000000>;
         };
     };
index c8d0ba5f2327647d847603119cb38ceedcc3e0a5..55a8d1385e21049bd9922d0a3e112aea8e646f88 100644 (file)
@@ -167,7 +167,7 @@ properties:
       Note that this flag is mainly used for PWM-LEDs, where it is not possible
       to map brightness to current. Drivers for other controllers should use
       led-max-microamp.
-    $ref: /schemas/types.yaml#definitions/uint32
+    $ref: /schemas/types.yaml#/definitions/uint32
 
   panic-indicator:
     description:
index a8736fd5a5390e5bd45f64d944dfd5e291a9b85e..1ba607685f5f9b31cfabc0b1c4e7b619e3c19a71 100644 (file)
@@ -89,9 +89,11 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/leds/common.h>
-    spmi {
+
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
+
         led-controller@ee00 {
             compatible = "qcom,pm8350c-flash-led", "qcom,spmi-flash-led";
             reg = <0xee00>;
diff --git a/Bindings/loongarch/cpus.yaml b/Bindings/loongarch/cpus.yaml
new file mode 100644 (file)
index 0000000..f175872
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/loongarch/cpus.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LoongArch CPUs
+
+maintainers:
+  - Binbin Zhou <zhoubinbin@loongson.cn>
+
+description:
+  This document describes the list of LoongArch CPU cores that support FDT,
+  it describe the layout of CPUs in a system through the "cpus" node.
+
+allOf:
+  - $ref: /schemas/cpu.yaml#
+
+properties:
+  compatible:
+    enum:
+      - loongson,la264
+      - loongson,la364
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/loongson,ls2k-clk.h>
+
+    cpus {
+        #size-cells = <0>;
+        #address-cells = <1>;
+
+        cpu@0 {
+            compatible = "loongson,la264";
+            device_type = "cpu";
+            reg = <0>;
+            clocks = <&clk LOONGSON2_NODE_CLK>;
+        };
+
+        cpu@1 {
+            compatible = "loongson,la264";
+            device_type = "cpu";
+            reg = <1>;
+            clocks = <&clk LOONGSON2_NODE_CLK>;
+        };
+    };
+
+...
diff --git a/Bindings/loongarch/loongson.yaml b/Bindings/loongarch/loongson.yaml
new file mode 100644 (file)
index 0000000..e1a4a97
--- /dev/null
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/loongarch/loongson.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson SoC-based boards
+
+maintainers:
+  - Binbin Zhou <zhoubinbin@loongson.cn>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: Loongson-2K0500 processor based boards
+        items:
+          - const: loongson,ls2k0500-ref
+          - const: loongson,ls2k0500
+
+      - description: Loongson-2K1000 processor based boards
+        items:
+          - const: loongson,ls2k1000-ref
+          - const: loongson,ls2k1000
+
+      - description: Loongson-2K2000 processor based boards
+        items:
+          - const: loongson,ls2k2000-ref
+          - const: loongson,ls2k2000
+
+additionalProperties: true
+
+...
index a38413f8d1321b0e1a8f4cade8341d011048a003..79eb523b843644d49b74843a3ae6bb9e832bf308 100644 (file)
@@ -23,6 +23,24 @@ properties:
               - qcom,ipq8074-apcs-apps-global
               - qcom,ipq9574-apcs-apps-global
           - const: qcom,ipq6018-apcs-apps-global
+      - items:
+          - enum:
+              - qcom,qcs404-apcs-apps-global
+          - const: qcom,msm8916-apcs-kpss-global
+          - const: syscon
+      - items:
+          - enum:
+              - qcom,msm8976-apcs-kpss-global
+          - const: qcom,msm8994-apcs-kpss-global
+          - const: syscon
+      - items:
+          - enum:
+              - qcom,msm8998-apcs-hmss-global
+              - qcom,sdm660-apcs-hmss-global
+              - qcom,sm4250-apcs-hmss-global
+              - qcom,sm6115-apcs-hmss-global
+              - qcom,sm6125-apcs-hmss-global
+          - const: qcom,msm8994-apcs-kpss-global
       - items:
           - enum:
               - qcom,sc7180-apss-shared
@@ -34,22 +52,14 @@ properties:
               - qcom,msm8916-apcs-kpss-global
               - qcom,msm8939-apcs-kpss-global
               - qcom,msm8953-apcs-kpss-global
-              - qcom,msm8976-apcs-kpss-global
               - qcom,msm8994-apcs-kpss-global
-              - qcom,qcs404-apcs-apps-global
               - qcom,sdx55-apcs-gcc
           - const: syscon
       - enum:
           - qcom,ipq6018-apcs-apps-global
-          - qcom,ipq8074-apcs-apps-global
           - qcom,msm8996-apcs-hmss-global
-          - qcom,msm8998-apcs-hmss-global
           - qcom,qcm2290-apcs-hmss-global
-          - qcom,sdm660-apcs-hmss-global
           - qcom,sdm845-apss-shared
-          - qcom,sm4250-apcs-hmss-global
-          - qcom,sm6115-apcs-hmss-global
-          - qcom,sm6125-apcs-hmss-global
 
   reg:
     maxItems: 1
@@ -80,20 +90,38 @@ allOf:
   - if:
       properties:
         compatible:
-          enum:
-            - qcom,msm8916-apcs-kpss-global
-            - qcom,msm8939-apcs-kpss-global
-            - qcom,qcs404-apcs-apps-global
+          contains:
+            enum:
+              - qcom,msm8916-apcs-kpss-global
+    then:
+      properties:
+        clocks:
+          items:
+            - description: primary pll parent of the clock driver
+            - description: auxiliary parent
+        clock-names:
+          items:
+            - const: pll
+            - const: aux
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,msm8939-apcs-kpss-global
     then:
       properties:
         clocks:
           items:
             - description: primary pll parent of the clock driver
             - description: auxiliary parent
+            - description: reference clock
         clock-names:
           items:
             - const: pll
             - const: aux
+            - const: ref
 
   - if:
       properties:
@@ -113,6 +141,7 @@ allOf:
             - const: ref
             - const: pll
             - const: aux
+
   - if:
       properties:
         compatible:
@@ -137,16 +166,10 @@ allOf:
         compatible:
           enum:
             - qcom,msm8953-apcs-kpss-global
-            - qcom,msm8976-apcs-kpss-global
             - qcom,msm8994-apcs-kpss-global
             - qcom,msm8996-apcs-hmss-global
-            - qcom,msm8998-apcs-hmss-global
             - qcom,qcm2290-apcs-hmss-global
-            - qcom,sdm660-apcs-hmss-global
             - qcom,sdm845-apss-shared
-            - qcom,sm4250-apcs-hmss-global
-            - qcom,sm6115-apcs-hmss-global
-            - qcom,sm6125-apcs-hmss-global
     then:
       properties:
         clocks: false
@@ -192,7 +215,8 @@ examples:
     #define GCC_APSS_AHB_CLK_SRC  1
     #define GCC_GPLL0_AO_OUT_MAIN 123
     apcs: mailbox@b011000 {
-        compatible = "qcom,qcs404-apcs-apps-global", "syscon";
+        compatible = "qcom,qcs404-apcs-apps-global",
+                     "qcom,msm8916-apcs-kpss-global", "syscon";
         reg = <0x0b011000 0x1000>;
         #mbox-cells = <1>;
         clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
index a35f9483dc716ee4fe45f2f96b59103c974387aa..8f004868aad988fa1d0be7bf10dc8b06f4ab82ce 100644 (file)
@@ -35,6 +35,7 @@ properties:
           - qcom,sm8450-ipcc
           - qcom,sm8550-ipcc
           - qcom,sm8650-ipcc
+          - qcom,x1e80100-ipcc
       - const: qcom,ipcc
 
   reg:
index 8b15a0532120f7bbd9610df84397d7d9fc14059e..fe83b5cb1278d5853a00ffa16f5cde82b456b788 100644 (file)
@@ -37,7 +37,9 @@ maintainers:
 
 properties:
   compatible:
-    const: xlnx,zynqmp-ipi-mailbox
+    enum:
+      - xlnx,zynqmp-ipi-mailbox
+      - xlnx,versal-ipi-mailbox
 
   method:
     description: |
@@ -58,6 +60,12 @@ properties:
   '#size-cells':
     const: 2
 
+  reg:
+    maxItems: 2
+
+  reg-names:
+    maxItems: 2
+
   xlnx,ipi-id:
     description: |
       Remote Xilinx IPI agent ID of which the mailbox is connected to.
@@ -76,7 +84,17 @@ patternProperties:
     properties:
 
       compatible:
-        const: xlnx,zynqmp-ipi-dest-mailbox
+        enum:
+          - xlnx,zynqmp-ipi-dest-mailbox
+          - xlnx,versal-ipi-dest-mailbox
+
+      reg:
+        minItems: 1
+        maxItems: 4
+
+      reg-names:
+        minItems: 1
+        maxItems: 4
 
       xlnx,ipi-id:
         description:
@@ -88,23 +106,44 @@ patternProperties:
         description:
           It contains tx(0) or rx(1) channel IPI id number.
 
-      reg:
-        maxItems: 4
-
-      reg-names:
-        items:
-          - const: local_request_region
-          - const: local_response_region
-          - const: remote_request_region
-          - const: remote_response_region
+    allOf:
+      - if:
+          properties:
+            compatible:
+              contains:
+                enum:
+                  - xlnx,zynqmp-ipi-dest-mailbox
+        then:
+          properties:
+            reg:
+              maxItems: 4
+
+            reg-names:
+              items:
+                - const: local_request_region
+                - const: local_response_region
+                - const: remote_request_region
+                - const: remote_response_region
+        else:
+          properties:
+            reg:
+              minItems: 1
+              items:
+                - description: Remote IPI agent control register region
+                - description: Remote IPI agent optional message buffers
+
+            reg-names:
+              minItems: 1
+              items:
+                - const: ctrl
+                - const: msg
 
     required:
       - compatible
       - reg
       - reg-names
       - "#mbox-cells"
-
-additionalProperties: false
+      - xlnx,ipi-id
 
 required:
   - compatible
@@ -113,6 +152,36 @@ required:
   - '#size-cells'
   - xlnx,ipi-id
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - xlnx,zynqmp-ipi-mailbox
+    then:
+      properties:
+        reg: false
+        reg-names: false
+
+    else:
+      properties:
+        reg:
+          items:
+            - description: Host IPI agent control register region
+            - description: Host IPI agent optional message buffers
+
+        reg-names:
+          items:
+            - const: ctrl
+            - const: msg
+
+      required:
+        - reg
+        - reg-names
+
+additionalProperties: false
+
 examples:
   - |
     #include<dt-bindings/interrupt-controller/arm-gic.h>
@@ -144,4 +213,41 @@ examples:
       };
     };
 
+  - |
+    #include<dt-bindings/interrupt-controller/arm-gic.h>
+
+    bus {
+      #address-cells = <2>;
+      #size-cells = <2>;
+      mailbox@ff300000 {
+        compatible = "xlnx,versal-ipi-mailbox";
+        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <2>;
+        #size-cells = <2>;
+        reg = <0x0 0xff300000 0x0 0x1000>,
+              <0x0 0xff990000 0x0 0x1ff>;
+        reg-names = "ctrl", "msg";
+        xlnx,ipi-id = <0>;
+        ranges;
+
+        /* buffered IPI */
+        mailbox@ff340000 {
+          compatible = "xlnx,versal-ipi-dest-mailbox";
+          reg = <0x0 0xff340000 0x0 0x1000>,
+                <0x0 0xff990400 0x0 0x1ff>;
+          reg-names = "ctrl", "msg";
+          #mbox-cells = <1>;
+          xlnx,ipi-id = <4>;
+        };
+
+        /* bufferless IPI */
+        mailbox@ff370000 {
+          compatible = "xlnx,versal-ipi-dest-mailbox";
+          reg = <0x0 0xff370000 0x0 0x1000>;
+          reg-names = "ctrl";
+          #mbox-cells = <1>;
+          xlnx,ipi-id = <7>;
+        };
+      };
+    };
 ...
diff --git a/Bindings/media/cnm,wave521c.yaml b/Bindings/media/cnm,wave521c.yaml
new file mode 100644 (file)
index 0000000..6a11c1d
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/cnm,wave521c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Chips&Media Wave 5 Series multi-standard codec IP
+
+maintainers:
+  - Nas Chung <nas.chung@chipsnmedia.com>
+  - Jackson Lee <jackson.lee@chipsnmedia.com>
+
+description:
+  The Chips&Media WAVE codec IP is a multi format video encoder/decoder
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - ti,j721s2-wave521c
+      - const: cnm,wave521c
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: VCODEC clock
+
+  interrupts:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  sram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The VPU uses the SRAM to store some of the reference data instead of
+      storing it on DMA memory. It is mainly used for the purpose of reducing
+      bandwidth.
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    vpu: video-codec@12345678 {
+        compatible = "ti,j721s2-wave521c", "cnm,wave521c";
+        reg = <0x12345678 0x1000>;
+        clocks = <&clks 42>;
+        interrupts = <42>;
+        sram = <&sram>;
+    };
diff --git a/Bindings/media/i2c/alliedvision,alvium-csi2.yaml b/Bindings/media/i2c/alliedvision,alvium-csi2.yaml
new file mode 100644 (file)
index 0000000..d3329e9
--- /dev/null
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/alliedvision,alvium-csi2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allied Vision Alvium Camera
+
+maintainers:
+  - Tommaso Merciai <tomm.merciai@gmail.com>
+  - Martin Hecht <martin.hecht@avnet.eu>
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: alliedvision,alvium-csi2
+
+  reg:
+    maxItems: 1
+
+  vcc-ext-in-supply:
+    description: |
+      The regulator that supplies power to the VCC_EXT_IN pins.
+
+  port:
+    description: Digital Output Port
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          link-frequencies: true
+
+          data-lanes:
+            minItems: 1
+            items:
+              - const: 1
+              - const: 2
+              - const: 3
+              - const: 4
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - vcc-ext-in-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        alvium: camera@3c {
+            compatible = "alliedvision,alvium-csi2";
+            reg = <0x3c>;
+            vcc-ext-in-supply = <&reg_vcc_ext_in>;
+
+            port {
+                alvium_out: endpoint {
+                    remote-endpoint = <&mipi_csi_0_in>;
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <681250000>;
+                };
+            };
+        };
+    };
+
+...
index 22a810fc72223909e11994e6c535cc1d07aabbad..fe312cc6a87310fc77216d945e7b301dd98acc0c 100644 (file)
@@ -15,7 +15,9 @@ description:
 
 properties:
   compatible:
-    const: asahi-kasei,ak7375
+    enum:
+      - asahi-kasei,ak7345
+      - asahi-kasei,ak7375
 
   reg:
     maxItems: 1
diff --git a/Bindings/media/i2c/galaxycore,gc0308.yaml b/Bindings/media/i2c/galaxycore,gc0308.yaml
new file mode 100644 (file)
index 0000000..f81e7da
--- /dev/null
@@ -0,0 +1,108 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc0308.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Galaxycore GC0308 and GC0309 Image Sensors
+
+maintainers:
+  - Sebastian Reichel <sre@kernel.org>
+
+description: |
+  The GalaxyCore GC0308 (1/6.5") and GC0309 (1/9") are 640x480 VGA sensors
+  programmable through an I2C interface and connected via parallel bus.
+  They include an ISP capable of auto exposure and auto white balance.
+
+allOf:
+  - $ref: ../video-interface-devices.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: galaxycore,gc0308
+      - items:
+          - const: galaxycore,gc0309
+          - const: galaxycore,gc0308
+
+  reg:
+    const: 0x21
+
+  clocks:
+    description: Reference to the xclk clock.
+    maxItems: 1
+
+  reset-gpios:
+    description: GPIO descriptor for the reset pin.
+    maxItems: 1
+
+  powerdown-gpios:
+    description: GPIO descriptor for the powerdown pin.
+    maxItems: 1
+
+  vdd28-supply:
+    description: 2.8V supply
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    description: |
+      Video output port.
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          bus-width: true
+          data-shift: true
+          hsync-active: true
+          vsync-active: true
+          data-active: true
+          pclk-sample: true
+
+        required:
+          - bus-width
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - powerdown-gpios
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera-sensor@21 {
+            compatible = "galaxycore,gc0308";
+            reg = <0x21>;
+            clocks = <&camera_clk>;
+            powerdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+            vdd28-supply = <&vdd28>;
+
+            port {
+                gc0308_ep: 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 */
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/media/i2c/galaxycore,gc2145.yaml b/Bindings/media/i2c/galaxycore,gc2145.yaml
new file mode 100644 (file)
index 0000000..1726ecc
--- /dev/null
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc2145.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Galaxy Core 1/5'' UXGA CMOS Image Sensor
+
+maintainers:
+  - Alain Volmat <alain.volmat@foss.st.com>
+
+description:
+  The Galaxy Core GC2145 is a 2 Megapixel CMOS image sensor, for mobile
+  phone camera applications and digital camera products. GC2145 incorporates a
+  1616V x 1232H active pixel array, on-chip 10-bit ADC, and image signal
+  processor allowing AE/AWB/interpolation/de-noise/color-conversion and
+  gamma correction. Bayer RGB, RGB565 and YCbCr 4:2:2 can be provided by the
+  sensor. It is programmable through an I2C interface. Image data is sent
+  either through a parallel interface or through MIPI CSI-2.
+
+allOf:
+  - $ref: ../video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: galaxycore,gc2145
+
+  reg:
+    const: 0x3c
+
+  clocks:
+    maxItems: 1
+
+  powerdown-gpios:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  iovdd-supply:
+    description: Power Supply for I/O circuits (1.7 - 3V).
+
+  avdd-supply:
+    description: Power for analog circuit/sensor array (2.7 - 3V).
+
+  dvdd-supply:
+    description: Power for digital core (1.7 - 1.9V).
+
+  orientation: true
+
+  rotation: true
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          link-frequencies: true
+
+        required:
+          - link-frequencies
+
+    required:
+      - endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - powerdown-gpios
+  - reset-gpios
+  - iovdd-supply
+  - avdd-supply
+  - dvdd-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3c {
+            compatible = "galaxycore,gc2145";
+            reg = <0x3c>;
+            clocks = <&clk_ext_camera>;
+            iovdd-supply = <&scmi_v3v3_sw>;
+            avdd-supply = <&scmi_v3v3_sw>;
+            dvdd-supply = <&scmi_v3v3_sw>;
+            powerdown-gpios = <&mcp23017 3 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+            reset-gpios = <&mcp23017 4 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&mipid02_0>;
+                    data-lanes = <1 2>;
+                    link-frequencies = /bits/ 64 <120000000 192000000 240000000>;
+                };
+            };
+        };
+    };
+
+...
index 57f5e48fd8e03c3c799ab5593a1b637e8bff0394..816dac9c6f609190b088975a9e096bab18239de7 100644 (file)
@@ -67,19 +67,17 @@ properties:
 
         properties:
           data-lanes:
-            description: |-
-              The driver only supports four-lane operation.
-            items:
-              - const: 1
-              - const: 2
-              - const: 3
-              - const: 4
-
-          link-frequencies:
-            description: Frequencies listed are driver, not h/w limitations.
-            maxItems: 2
-            items:
-              enum: [ 360000000, 180000000 ]
+            oneOf:
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
 
         required:
           - link-frequencies
diff --git a/Bindings/media/i2c/ovti,ov64a40.yaml b/Bindings/media/i2c/ovti,ov64a40.yaml
new file mode 100644 (file)
index 0000000..2b6143a
--- /dev/null
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OmniVision OV64A40 Image Sensor
+
+maintainers:
+  - Jacopo Mondi <jacopo.mondi@ideasonboard.com>
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: ovti,ov64a40
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  avdd-supply:
+    description: Analog voltage supply, 2.8 volts
+
+  dvdd-supply:
+    description: Digital core voltage supply, 1.1 volts
+
+  dovdd-supply:
+    description: Digital I/O voltage supply, 1.8 volts
+
+  powerdown-gpios:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        additionalProperties: false
+
+        properties:
+          bus-type:
+            enum:
+              - 1 # MIPI CSI-2 C-PHY
+              - 4 # MIPI CSI-2 D-PHY
+          data-lanes: true
+          link-frequencies: true
+          clock-noncontinuous: true
+          remote-endpoint: true
+
+        required:
+          - bus-type
+          - data-lanes
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+      #include <dt-bindings/gpio/gpio.h>
+
+      i2c {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          camera@36 {
+              compatible = "ovti,ov64a40";
+              reg = <0x36>;
+              clocks = <&camera_clk>;
+              dovdd-supply = <&vgen4_reg>;
+              avdd-supply = <&vgen3_reg>;
+              dvdd-supply = <&vgen2_reg>;
+              powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+              reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+              rotation = <180>;
+              orientation = <2>;
+
+              port {
+                  endpoint {
+                      remote-endpoint = <&mipi_csi2_in>;
+                      bus-type = <4>;
+                      data-lanes = <1 2 3 4>;
+                      link-frequencies = /bits/ 64 <456000000>;
+                  };
+              };
+          };
+      };
+
+...
index a167dcdb3a32e5523fa288b7bf73d744ff4b2670..106c36ee966db02d11bd27daaecbbce5696ac94f 100644 (file)
@@ -32,6 +32,15 @@ properties:
     description: Clock frequency from 6 to 27 MHz, 37.125MHz, 74.25MHz
     maxItems: 1
 
+  avdd-supply:
+    description: Analog power supply (2.9V)
+
+  ovdd-supply:
+    description: Interface power supply (1.8V)
+
+  dvdd-supply:
+    description: Digital power supply (1.2V)
+
   reset-gpios:
     description: Reference to the GPIO connected to the XCLR pin, if any.
     maxItems: 1
@@ -79,6 +88,10 @@ examples:
             assigned-clock-parents = <&imx335_clk_parent>;
             assigned-clock-rates = <24000000>;
 
+            avdd-supply = <&camera_vdda_2v9>;
+            ovdd-supply = <&camera_vddo_1v8>;
+            dvdd-supply = <&camera_vddd_1v2>;
+
             port {
                 imx335: endpoint {
                     remote-endpoint = <&cam>;
diff --git a/Bindings/media/i2c/techwell,tw9900.yaml b/Bindings/media/i2c/techwell,tw9900.yaml
new file mode 100644 (file)
index 0000000..e37317f
--- /dev/null
@@ -0,0 +1,137 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/techwell,tw9900.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Techwell TW9900 NTSC/PAL video decoder
+
+maintainers:
+  - Mehdi Djait <mehdi.djait@bootlin.com>
+
+description:
+  The tw9900 is a multi-standard video decoder, supporting NTSC, PAL standards
+  with auto-detection features.
+
+properties:
+  compatible:
+    const: techwell,tw9900
+
+  reg:
+    maxItems: 1
+
+  vdd-supply:
+    description: VDD power supply
+
+  reset-gpios:
+    description: GPIO descriptor for the RESET input pin
+    maxItems: 1
+
+  powerdown-gpios:
+    description: GPIO descriptor for the POWERDOWN input pin
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        description: Analog input port
+
+        properties:
+          endpoint@0:
+            $ref: /schemas/graph.yaml#/properties/endpoint
+            description: CVBS over MUX0
+
+          endpoint@1:
+            $ref: /schemas/graph.yaml#/properties/endpoint
+            description: CVBS over MUX1
+
+          endpoint@2:
+            $ref: /schemas/graph.yaml#/properties/endpoint
+            description: Chroma over CIN0 and Y over MUX0
+
+          endpoint@3:
+            $ref: /schemas/graph.yaml#/properties/endpoint
+            description: Chroma over CIN0 and Y over MUX1
+
+        oneOf:
+          - required:
+              - endpoint@0
+          - required:
+              - endpoint@1
+          - required:
+              - endpoint@2
+          - required:
+              - endpoint@3
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Video port for the decoder output.
+
+
+    required:
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - ports
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/display/sdtv-standards.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    composite_connector {
+        compatible = "composite-video-connector";
+        label = "tv";
+        sdtv-standards = <(SDTV_STD_PAL | SDTV_STD_NTSC)>;
+
+        port {
+            composite_to_tw9900: endpoint {
+                remote-endpoint = <&tw9900_to_composite>;
+            };
+        };
+    };
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        video-decoder@44 {
+            compatible = "techwell,tw9900";
+            reg = <0x44>;
+
+            vdd-supply = <&tw9900_supply>;
+            reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    reg = <0>;
+                    tw9900_to_composite: endpoint@0 {
+                        reg = <0>;
+                        remote-endpoint = <&composite_to_tw9900>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    endpoint {
+                        remote-endpoint = <&cif_in>;
+                    };
+                };
+            };
+        };
+    };
diff --git a/Bindings/media/i2c/thine,thp7312.yaml b/Bindings/media/i2c/thine,thp7312.yaml
new file mode 100644 (file)
index 0000000..1978fbb
--- /dev/null
@@ -0,0 +1,224 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2023 Ideas on Board
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/thine,thp7312.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: THine THP7312
+
+maintainers:
+  - Paul Elder <paul.elder@@ideasonboard.com>
+
+description:
+  The THP7312 is a standalone ISP controlled over i2c, and is capable of
+  various image processing and correction functions, including 3A control. It
+  can be connected to CMOS image sensors from various vendors, supporting both
+  MIPI CSI-2 and parallel interfaces. It can also output on either MIPI CSI-2
+  or parallel. The hardware is capable of transmitting and receiving MIPI
+  interlaved data strams with data types or multiple virtual channel
+  identifiers.
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: thine,thp7312
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+    description: CLKI clock input
+
+  thine,boot-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 1
+    default: 1
+    description:
+      Boot mode of the THP7312, reflecting the value of the BOOT[0] pin strap.
+      0 is for the SPI/2-wire slave boot, 1 is for the SPI master boot (from
+      external flash ROM).
+
+  reset-gpios:
+    maxItems: 1
+    description:
+      Reference to the GPIO connected to the RESET_N pin, if any.
+      Must be released (set high) after all supplies are applied.
+
+  vddcore-supply:
+    description:
+      1.2V supply for core, PLL, MIPI rx and MIPI tx.
+
+  vhtermrx-supply:
+    description:
+      Supply for input (RX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel.
+
+  vddtx-supply:
+    description:
+      Supply for output (TX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel.
+
+  vddhost-supply:
+    description:
+      Supply for host interface. 1.8V, 2.8V, or 3.3V.
+
+  vddcmos-supply:
+    description:
+      Supply for sensor interface. 1.8V, 2.8V, or 3.3V.
+
+  vddgpio-0-supply:
+    description:
+      Supply for GPIO_0. 1.8V, 2.8V, or 3.3V.
+
+  vddgpio-1-supply:
+    description:
+      Supply for GPIO_1. 1.8V, 2.8V, or 3.3V.
+
+  orientation: true
+  rotation: true
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          bus-type:
+            const: 4 # CSI-2 D-PHY
+
+          data-lanes:
+            description:
+              This property is for lane reordering between the THP7312 and the
+              SoC. The sensor supports either two-lane, or four-lane operation.
+              If this property is omitted four-lane operation is assumed. For
+              two-lane operation the property must be set to <1 2>.
+            minItems: 2
+            maxItems: 4
+            items:
+              maximum: 4
+
+  sensors:
+    type: object
+    description: List of connected sensors
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      "^sensor@[01]$":
+        type: object
+        description:
+          Sensors connected to the first and second input, with one node per
+          sensor.
+
+        properties:
+          thine,model:
+            $ref: /schemas/types.yaml#/definitions/string
+            description:
+              Model of the connected sensors. Must be a valid compatible string.
+
+          reg:
+            description: THP7312 input port number
+            items:
+              - maximum: 1
+
+          data-lanes:
+            $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes
+            items:
+              maxItems: 4
+            description:
+              This property is for lane reordering between the THP7312 and the imaging
+              sensor that it is connected to.
+
+        required:
+          - reg
+          - data-lanes
+
+        additionalProperties: false
+
+    required:
+      - "#address-cells"
+      - "#size-cells"
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - reset-gpios
+  - clocks
+  - vddcore-supply
+  - vhtermrx-supply
+  - vddtx-supply
+  - vddhost-supply
+  - vddcmos-supply
+  - vddgpio-0-supply
+  - vddgpio-1-supply
+  - sensors
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/media/video-interfaces.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@61 {
+            compatible = "thine,thp7312";
+            reg = <0x61>;
+
+            pinctrl-names = "default";
+            pinctrl-0 = <&cam1_pins_default>;
+
+            reset-gpios = <&pio 119 GPIO_ACTIVE_LOW>;
+            clocks = <&camera61_clk>;
+
+            vddcore-supply = <&vsys_v4p2>;
+            vhtermrx-supply = <&vsys_v4p2>;
+            vddtx-supply = <&vsys_v4p2>;
+            vddhost-supply = <&vsys_v4p2>;
+            vddcmos-supply = <&vsys_v4p2>;
+            vddgpio-0-supply = <&vsys_v4p2>;
+            vddgpio-1-supply = <&vsys_v4p2>;
+
+            orientation = <0>;
+            rotation = <0>;
+
+            sensors {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                sensor@0 {
+                    thine,model = "sony,imx258";
+                    reg = <0>;
+
+                    data-lanes = <4 1 3 2>;
+                };
+            };
+
+            port {
+                thp7312_2_endpoint: endpoint {
+                    remote-endpoint = <&mipi_thp7312_2>;
+                    bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+                    data-lanes = <4 2 1 3>;
+                };
+            };
+        };
+    };
+...
diff --git a/Bindings/media/mediatek,mdp3-fg.yaml b/Bindings/media/mediatek,mdp3-fg.yaml
new file mode 100644 (file)
index 0000000..03f31b0
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mdp3-fg.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Media Data Path 3 Film Grain
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+  - Moudy Ho <moudy.ho@mediatek.com>
+
+description:
+  Film Grain (FG) is a Media Data Path 3 (MDP3) component used to add
+  the film grain according to the AOMedia Video 1 (AV1) standard.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8195-mdp3-fg
+
+  reg:
+    maxItems: 1
+
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - mediatek,gce-client-reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt8195-clk.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    display@14002000 {
+        compatible = "mediatek,mt8195-mdp3-fg";
+        reg = <0x14002000 0x1000>;
+        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x2000 0x1000>;
+        clocks = <&vppsys0 CLK_VPP0_MDP_FG>;
+    };
diff --git a/Bindings/media/mediatek,mdp3-hdr.yaml b/Bindings/media/mediatek,mdp3-hdr.yaml
new file mode 100644 (file)
index 0000000..d4609bb
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mdp3-hdr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Media Data Path 3 HDR
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+  - Moudy Ho <moudy.ho@mediatek.com>
+
+description:
+  A Media Data Path 3 (MDP3) component used to perform conversion from
+  High Dynamic Range (HDR) to Standard Dynamic Range (SDR).
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8195-mdp3-hdr
+
+  reg:
+    maxItems: 1
+
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - mediatek,gce-client-reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt8195-clk.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    display@14004000 {
+        compatible = "mediatek,mt8195-mdp3-hdr";
+        reg = <0x14004000 0x1000>;
+        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x4000 0x1000>;
+        clocks = <&vppsys0 CLK_VPP0_MDP_HDR>;
+    };
index 7032c7e15039004f6a0e7576c27592e067ec8fc5..59db8306485b328deb763ce260002dadffaf7da4 100644 (file)
@@ -20,8 +20,14 @@ description: |
 
 properties:
   compatible:
-    items:
-      - const: mediatek,mt8183-mdp3-rdma
+    oneOf:
+      - enum:
+          - mediatek,mt8183-mdp3-rdma
+          - mediatek,mt8195-mdp3-rdma
+          - mediatek,mt8195-vdo1-rdma
+      - items:
+          - const: mediatek,mt8188-vdo1-rdma
+          - const: mediatek,mt8195-vdo1-rdma
 
   reg:
     maxItems: 1
@@ -45,6 +51,14 @@ properties:
       include/dt-bindings/gce/<chip>-gce.h of each chips.
     $ref: /schemas/types.yaml#/definitions/uint32-array
 
+  mediatek,scp:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the System Control Processor (SCP) used for initializing
+      and stopping the MDP3, for sending frame data locations to the MDP3's
+      VPU and to install Inter-Processor Interrupt handlers to control
+      processing states.
+
   power-domains:
     maxItems: 1
 
@@ -52,6 +66,7 @@ properties:
     items:
       - description: RDMA clock
       - description: RSZ clock
+    minItems: 1
 
   iommus:
     maxItems: 1
@@ -60,16 +75,72 @@ properties:
     items:
       - description: used for 1st data pipe from RDMA
       - description: used for 2nd data pipe from RDMA
+      - description: used for 3rd data pipe from RDMA
+      - description: used for 4th data pipe from RDMA
+      - description: used for the data pipe from SPLIT
+    minItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  '#dma-cells':
+    const: 1
 
 required:
   - compatible
   - reg
   - mediatek,gce-client-reg
-  - mediatek,gce-events
   - power-domains
   - clocks
   - iommus
-  - mboxes
+  - '#dma-cells'
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt8183-mdp3-rdma
+
+    then:
+      properties:
+        clocks:
+          minItems: 2
+
+        mboxes:
+          minItems: 2
+
+      required:
+        - mboxes
+        - mediatek,gce-events
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt8195-mdp3-rdma
+
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
+        mboxes:
+          minItems: 5
+
+      required:
+        - mediatek,gce-events
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt8195-vdo1-rdma
+
+    then:
+      properties:
+        clocks:
+          maxItems: 1
 
 additionalProperties: false
 
@@ -80,16 +151,17 @@ examples:
     #include <dt-bindings/power/mt8183-power.h>
     #include <dt-bindings/memory/mt8183-larb-port.h>
 
-    mdp3_rdma0: mdp3-rdma0@14001000 {
-      compatible = "mediatek,mt8183-mdp3-rdma";
-      reg = <0x14001000 0x1000>;
-      mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
-      mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>,
-                            <CMDQ_EVENT_MDP_RDMA0_EOF>;
-      power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
-      clocks = <&mmsys CLK_MM_MDP_RDMA0>,
-               <&mmsys CLK_MM_MDP_RSZ1>;
-      iommus = <&iommu>;
-      mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>,
-               <&gce 21 CMDQ_THR_PRIO_LOWEST>;
+    dma-controller@14001000 {
+        compatible = "mediatek,mt8183-mdp3-rdma";
+        reg = <0x14001000 0x1000>;
+        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
+        mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>,
+                              <CMDQ_EVENT_MDP_RDMA0_EOF>;
+        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
+        clocks = <&mmsys CLK_MM_MDP_RDMA0>,
+                 <&mmsys CLK_MM_MDP_RSZ1>;
+        iommus = <&iommu>;
+        mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>,
+                 <&gce 21 CMDQ_THR_PRIO_LOWEST>;
+        #dma-cells = <1>;
     };
index 78f9de6192ef474297ba484c30d2028314a307b0..f5676bec43266e11c6c27f5f13c4cfba16507a8f 100644 (file)
@@ -15,9 +15,13 @@ description: |
 
 properties:
   compatible:
-    items:
+    oneOf:
       - enum:
           - mediatek,mt8183-mdp3-rsz
+      - items:
+          - enum:
+              - mediatek,mt8195-mdp3-rsz
+          - const: mediatek,mt8183-mdp3-rsz
 
   reg:
     maxItems: 1
diff --git a/Bindings/media/mediatek,mdp3-stitch.yaml b/Bindings/media/mediatek,mdp3-stitch.yaml
new file mode 100644 (file)
index 0000000..d815bea
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mdp3-stitch.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Media Data Path 3 STITCH
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+  - Moudy Ho <moudy.ho@mediatek.com>
+
+description:
+  One of Media Data Path 3 (MDP3) components used to combine multiple video frame
+  with overlapping fields of view to produce a segmented panorame.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8195-mdp3-stitch
+
+  reg:
+    maxItems: 1
+
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - mediatek,gce-client-reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt8195-clk.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    display@14003000 {
+        compatible = "mediatek,mt8195-mdp3-stitch";
+        reg = <0x14003000 0x1000>;
+        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x3000 0x1000>;
+        clocks = <&vppsys0 CLK_VPP0_STITCH>;
+    };
diff --git a/Bindings/media/mediatek,mdp3-tcc.yaml b/Bindings/media/mediatek,mdp3-tcc.yaml
new file mode 100644 (file)
index 0000000..14ea556
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mdp3-tcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Media Data Path 3 Tone Curve Conversion
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+
+description:
+  Tone Curve Conversion (TCC) is one of Media Profile Path 3 (MDP3) components.
+  It is used to handle the tone mapping of various gamma curves in order to
+  achieve HDR10 effects. This helps adapt the content to the color and
+  brightness range that standard display devices typically support.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8195-mdp3-tcc
+
+  reg:
+    maxItems: 1
+
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - mediatek,gce-client-reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt8195-clk.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    display@1400b000 {
+        compatible = "mediatek,mt8195-mdp3-tcc";
+        reg = <0x1400b000 0x1000>;
+        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xb000 0x1000>;
+        clocks = <&vppsys0 CLK_VPP0_MDP_TCC>;
+    };
diff --git a/Bindings/media/mediatek,mdp3-tdshp.yaml b/Bindings/media/mediatek,mdp3-tdshp.yaml
new file mode 100644 (file)
index 0000000..8ab7f2d
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mdp3-tdshp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Media Data Path 3 Two-Dimensional Sharpness
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+  - Moudy Ho <moudy.ho@mediatek.com>
+
+description:
+  Two-Dimensional Sharpness (TDSHP) is a Media Profile Path 3 (MDP3) component
+  used to perform image edge sharpening and enhance vividness and contrast.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8195-mdp3-tdshp
+
+  reg:
+    maxItems: 1
+
+  mediatek,gce-client-reg:
+    description:
+      The register of display function block to be set by gce. There are 4 arguments,
+      such as gce node, subsys id, offset and register size. The subsys id that is
+      mapping to the register of display function blocks is defined in the gce header
+      include/dt-bindings/gce/<chip>-gce.h of each chips.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle of GCE
+        - description: GCE subsys id
+        - description: register offset
+        - description: register size
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - mediatek,gce-client-reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt8195-clk.h>
+    #include <dt-bindings/gce/mt8195-gce.h>
+
+    display@14007000 {
+        compatible = "mediatek,mt8195-mdp3-tdshp";
+        reg = <0x14007000 0x1000>;
+        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x7000 0x1000>;
+        clocks = <&vppsys0 CLK_VPP0_MDP_TDSHP>;
+    };
index 0baa77198fa21777af1fc59067cbf773145bce1b..53a67933840256ed8220bc127443a904ed2402cd 100644 (file)
@@ -15,9 +15,13 @@ description: |
 
 properties:
   compatible:
-    items:
+    oneOf:
       - enum:
           - mediatek,mt8183-mdp3-wrot
+      - items:
+          - enum:
+              - mediatek,mt8195-mdp3-wrot
+          - const: mediatek,mt8183-mdp3-wrot
 
   reg:
     maxItems: 1
@@ -50,6 +54,9 @@ properties:
   iommus:
     maxItems: 1
 
+  '#dma-cells':
+    const: 1
+
 required:
   - compatible
   - reg
@@ -58,6 +65,7 @@ required:
   - power-domains
   - clocks
   - iommus
+  - '#dma-cells'
 
 additionalProperties: false
 
@@ -68,13 +76,14 @@ examples:
     #include <dt-bindings/power/mt8183-power.h>
     #include <dt-bindings/memory/mt8183-larb-port.h>
 
-    mdp3_wrot0: mdp3-wrot0@14005000 {
-      compatible = "mediatek,mt8183-mdp3-wrot";
-      reg = <0x14005000 0x1000>;
-      mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x5000 0x1000>;
-      mediatek,gce-events = <CMDQ_EVENT_MDP_WROT0_SOF>,
-                            <CMDQ_EVENT_MDP_WROT0_EOF>;
-      power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
-      clocks = <&mmsys CLK_MM_MDP_WROT0>;
-      iommus = <&iommu>;
+    dma-controller@14005000 {
+        compatible = "mediatek,mt8183-mdp3-wrot";
+        reg = <0x14005000 0x1000>;
+        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x5000 0x1000>;
+        mediatek,gce-events = <CMDQ_EVENT_MDP_WROT0_SOF>,
+                              <CMDQ_EVENT_MDP_WROT0_EOF>;
+        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
+        clocks = <&mmsys CLK_MM_MDP_WROT0>;
+        iommus = <&iommu>;
+        #dma-cells = <1>;
     };
index e466dff8286d2bbaa2b111ee3c0a26166525ac4c..afcaa427d48b09ea331c60b00602eaeff45b74ef 100644 (file)
@@ -90,15 +90,16 @@ properties:
         description: connection point for input on the parallel interface
 
         properties:
-          bus-type:
-            enum: [5, 6]
-
           endpoint:
             $ref: video-interfaces.yaml#
             unevaluatedProperties: false
 
-        required:
-          - bus-type
+            properties:
+              bus-type:
+                enum: [5, 6]
+
+            required:
+              - bus-type
 
     anyOf:
       - required:
index 084b44582a434d7ad5e4d6b236d7cc5e4ac7b96d..b46cc780703c6cdecbf1deafdfe16dfd70c512d4 100644 (file)
@@ -24,6 +24,7 @@ properties:
           - samsung,mfc-v7                # Exynos5420
           - samsung,mfc-v8                # Exynos5800
           - samsung,mfc-v10               # Exynos7880
+          - tesla,fsd-mfc                 # Tesla FSD
       - items:
           - enum:
               - samsung,exynos3250-mfc    # Exynos3250
@@ -49,7 +50,9 @@ properties:
 
   iommu-names:
     minItems: 1
-    maxItems: 2
+    items:
+      - const: left
+      - const: right
 
   power-domains:
     maxItems: 1
@@ -84,7 +87,7 @@ allOf:
             - const: sclk_mfc
         iommus:
           maxItems: 1
-        iommus-names: false
+        iommu-names: false
 
   - if:
       properties:
@@ -102,11 +105,9 @@ allOf:
             - const: aclk
             - const: aclk_xiu
         iommus:
-          maxItems: 2
-        iommus-names:
-          items:
-            - const: left
-            - const: right
+          minItems: 2
+        iommu-names:
+          minItems: 2
 
   - if:
       properties:
@@ -123,11 +124,9 @@ allOf:
             - const: mfc
             - const: sclk_mfc
         iommus:
-          maxItems: 2
-        iommus-names:
-          items:
-            - const: left
-            - const: right
+          minItems: 2
+        iommu-names:
+          minItems: 2
 
   - if:
       properties:
@@ -144,11 +143,9 @@ allOf:
           items:
             - const: mfc
         iommus:
-          maxItems: 2
-        iommus-names:
-          items:
-            - const: left
-            - const: right
+          minItems: 2
+        iommu-names:
+          minItems: 2
 
   - if:
       properties:
@@ -161,9 +158,23 @@ allOf:
         clocks:
           minItems: 1
           maxItems: 2
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - tesla,fsd-mfc
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names:
+          items:
+            - const: mfc
         iommus:
-          minItems: 1
           maxItems: 2
+        iommus-names: false
 
 examples:
   - |
diff --git a/Bindings/media/st,stm32-dcmipp.yaml b/Bindings/media/st,stm32-dcmipp.yaml
new file mode 100644 (file)
index 0000000..87731f3
--- /dev/null
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/st,stm32-dcmipp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 DCMIPP Digital Camera Memory Interface Pixel Processor
+
+maintainers:
+  - Hugues Fruchet <hugues.fruchet@foss.st.com>
+  - Alain Volmat <alain.volmat@foss.st.com>
+
+properties:
+  compatible:
+    const: st,stm32mp13-dcmipp
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    unevaluatedProperties: false
+    description:
+      DCMIPP supports a single port node with parallel bus.
+
+    properties:
+      endpoint:
+        $ref: video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          bus-type:
+            enum: [5, 6]
+            default: 5
+
+          bus-width:
+            enum: [8, 10, 12, 14]
+            default: 8
+
+          pclk-sample: true
+          hsync-active: true
+          vsync-active: true
+
+        required:
+          - pclk-sample
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - resets
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/stm32mp13-clks.h>
+    #include <dt-bindings/reset/stm32mp13-resets.h>
+    dcmipp@5a000000 {
+        compatible = "st,stm32mp13-dcmipp";
+        reg = <0x5a000000 0x400>;
+        interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+        resets = <&rcc DCMIPP_R>;
+        clocks = <&rcc DCMIPP_K>;
+
+        port {
+             endpoint {
+                   remote-endpoint = <&mipid02_2>;
+                   bus-width = <8>;
+                   hsync-active = <0>;
+                   vsync-active = <0>;
+                   pclk-sample = <0>;
+             };
+        };
+    };
+
+...
diff --git a/Bindings/media/starfive,jh7110-camss.yaml b/Bindings/media/starfive,jh7110-camss.yaml
new file mode 100644 (file)
index 0000000..c66586d
--- /dev/null
@@ -0,0 +1,180 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Starfive SoC CAMSS ISP
+
+maintainers:
+  - Jack Zhu <jack.zhu@starfivetech.com>
+  - Changhuang Liang <changhuang.liang@starfivetech.com>
+
+description:
+  The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It
+  consists of a VIN controller (Video In Controller, a top-level control unit)
+  and an ISP.
+
+properties:
+  compatible:
+    const: starfive,jh7110-camss
+
+  reg:
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: syscon
+      - const: isp
+
+  clocks:
+    maxItems: 7
+
+  clock-names:
+    items:
+      - const: apb_func
+      - const: wrapper_clk_c
+      - const: dvp_inv
+      - const: axiwr
+      - const: mipi_rx0_pxl
+      - const: ispcore_2x
+      - const: isp_axi
+
+  resets:
+    maxItems: 6
+
+  reset-names:
+    items:
+      - const: wrapper_p
+      - const: wrapper_c
+      - const: axird
+      - const: axiwr
+      - const: isp_top_n
+      - const: isp_top_axi
+
+  power-domains:
+    items:
+      - description: JH7110 ISP Power Domain Switch Controller.
+
+  interrupts:
+    maxItems: 4
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: Input port for receiving DVP data.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              bus-type:
+                enum: [5, 6]
+
+              bus-width:
+                enum: [8, 10, 12]
+
+              data-shift:
+                enum: [0, 2]
+                default: 0
+
+              hsync-active:
+                enum: [0, 1]
+                default: 1
+
+              vsync-active:
+                enum: [0, 1]
+                default: 1
+
+            required:
+              - bus-type
+              - bus-width
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Input port for receiving CSI data.
+
+    required:
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+  - interrupts
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    isp@19840000 {
+        compatible = "starfive,jh7110-camss";
+        reg = <0x19840000 0x10000>,
+              <0x19870000 0x30000>;
+        reg-names = "syscon", "isp";
+        clocks = <&ispcrg 0>,
+                 <&ispcrg 13>,
+                 <&ispcrg 2>,
+                 <&ispcrg 12>,
+                 <&ispcrg 1>,
+                 <&syscrg 51>,
+                 <&syscrg 52>;
+        clock-names = "apb_func",
+                      "wrapper_clk_c",
+                      "dvp_inv",
+                      "axiwr",
+                      "mipi_rx0_pxl",
+                      "ispcore_2x",
+                      "isp_axi";
+        resets = <&ispcrg 0>,
+                 <&ispcrg 1>,
+                 <&ispcrg 10>,
+                 <&ispcrg 11>,
+                 <&syscrg 41>,
+                 <&syscrg 42>;
+        reset-names = "wrapper_p",
+                      "wrapper_c",
+                      "axird",
+                      "axiwr",
+                      "isp_top_n",
+                      "isp_top_axi";
+        power-domains = <&pwrc 5>;
+        interrupts = <92>, <87>, <88>, <90>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+            port@0 {
+                reg = <0>;
+                vin_from_sc2235: endpoint {
+                    remote-endpoint = <&sc2235_to_vin>;
+                    bus-type = <5>;
+                    bus-width = <8>;
+                    data-shift = <2>;
+                    hsync-active = <1>;
+                    vsync-active = <0>;
+                    pclk-sample = <1>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                vin_from_csi2rx: endpoint {
+                    remote-endpoint = <&csi2rx_to_vin>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/mfd/ams,as3711.yaml b/Bindings/mfd/ams,as3711.yaml
new file mode 100644 (file)
index 0000000..ad8649c
--- /dev/null
@@ -0,0 +1,223 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ams,as3711.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Austria MicroSystems AS3711 Quad Buck High Current PMIC with Charger
+
+maintainers:
+  - Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
+
+description:
+  AS3711 is an I2C PMIC from Austria MicroSystems with multiple DC/DC and LDO
+  power supplies, a battery charger and an RTC.  So far only bindings for the
+  two step-up DC/DC converters are defined.
+
+properties:
+  compatible:
+    const: ams,as3711
+
+  reg:
+    maxItems: 1
+
+  backlight:
+    description:
+      Step-up converter configuration, to be used as a backlight source
+    type: object
+    additionalProperties: false
+    properties:
+      compatible:
+        const: ams,as3711-bl
+
+      su1-dev:
+        description: Framebuffer phandle for the first step-up converter
+        $ref: /schemas/types.yaml#/definitions/phandle
+
+      su1-max-uA:
+        description: Maximum current for the first step-up converter
+        $ref: /schemas/types.yaml#/definitions/uint32
+
+      su2-dev:
+        description: Framebuffer phandle for the second step-up converter
+        $ref: /schemas/types.yaml#/definitions/phandle
+
+      su2-max-uA:
+        description: Maximum current for the second step-up converter
+        $ref: /schemas/types.yaml#/definitions/uint32
+
+      su2-feedback-voltage:
+        description: Second step-up converter uses voltage feedback
+        type: boolean
+
+      su2-feedback-curr1:
+        description:
+          Second step-up converter uses CURR1 input for current feedback
+        type: boolean
+
+      su2-feedback-curr2:
+        description:
+          Second step-up converter uses CURR2 input for current feedback
+        type: boolean
+
+      su2-feedback-curr3:
+        description:
+          Second step-up converter uses CURR3 input for current feedback
+        type: boolean
+
+      su2-feedback-curr-auto:
+        description:
+          Second step-up converter uses automatic current feedback selection
+        type: boolean
+
+      su2-fbprot-lx-sd4:
+        description:
+          Second step-up converter uses LX_SD4 for over-voltage protection
+        type: boolean
+
+      su2-fbprot-gpio2:
+        description:
+          Second step-up converter uses GPIO2 for over-voltage protection
+        type: boolean
+
+      su2-fbprot-gpio3:
+        description:
+          Second step-up converter uses GPIO3 for over-voltage protection
+        type: boolean
+
+      su2-fbprot-gpio4:
+        description:
+          Second step-up converter uses GPIO4 for over-voltage protection
+        type: boolean
+
+      su2-auto-curr1:
+        description:
+          Second step-up converter uses CURR1 input for automatic current
+          feedback
+        type: boolean
+
+      su2-auto-curr2:
+        description:
+          Second step-up converter uses CURR2 input for automatic current
+          feedback
+        type: boolean
+
+      su2-auto-curr3:
+        description:
+          Second step-up converter uses CURR3 input for automatic current
+          feedback
+        type: boolean
+
+    required:
+      - compatible
+
+    dependentRequired:
+      # To use the SU1 converter as a backlight source the following two
+      # properties must be provided:
+      su1-dev: [ su1-max-uA ]
+      su1-max-uA: [ su1-dev ]
+
+      # To use the SU2 converter as a backlight source the following two
+      # properties must be provided:
+      su2-dev: [ su2-max-uA ]
+      su2-max-uA: [ su2-dev ]
+
+      su2-feedback-voltage: [ su2-dev ]
+      su2-feedback-curr1: [ su2-dev ]
+      su2-feedback-curr2: [ su2-dev ]
+      su2-feedback-curr3: [ su2-dev ]
+      su2-feedback-curr-auto: [ su2-dev ]
+      su2-fbprot-lx-sd4: [ su2-dev ]
+      su2-fbprot-gpio2: [ su2-dev ]
+      su2-fbprot-gpio3: [ su2-dev ]
+      su2-fbprot-gpio4: [ su2-dev ]
+      su2-auto-curr1: [ su2-feedback-curr-auto ]
+      su2-auto-curr2: [ su2-feedback-curr-auto ]
+      su2-auto-curr3: [ su2-feedback-curr-auto ]
+
+    dependentSchemas:
+      su2-dev:
+        allOf:
+          - oneOf:
+              - required:
+                  - su2-feedback-voltage
+              - required:
+                  - su2-feedback-curr1
+              - required:
+                  - su2-feedback-curr2
+              - required:
+                  - su2-feedback-curr3
+              - required:
+                  - su2-feedback-curr-auto
+          - oneOf:
+              - required:
+                  - su2-fbprot-lx-sd4
+              - required:
+                  - su2-fbprot-gpio2
+              - required:
+                  - su2-fbprot-gpio3
+              - required:
+                  - su2-fbprot-gpio4
+
+      su2-feedback-curr-auto:
+        anyOf:
+          - required:
+              - su2-auto-curr1
+          - required:
+              - su2-auto-curr2
+          - required:
+              - su2-auto-curr3
+
+  regulators:
+    description: Other DC/DC and LDO supplies
+    type: object
+    unevaluatedProperties: false
+    patternProperties:
+      "^(sd[1-4]|ldo[1-8])$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@40 {
+            compatible = "ams,as3711";
+            reg = <0x40>;
+
+            regulators {
+                sd4 {
+                    regulator-name = "1.215V";
+                    regulator-min-microvolt = <1215000>;
+                    regulator-max-microvolt = <1235000>;
+                };
+                ldo2 {
+                    regulator-name = "2.8V CPU";
+                    regulator-min-microvolt = <2800000>;
+                    regulator-max-microvolt = <2800000>;
+                    regulator-always-on;
+                    regulator-boot-on;
+                };
+            };
+
+            backlight {
+                compatible = "ams,as3711-bl";
+                su2-dev = <&lcdc>;
+                su2-max-uA = <36000>;
+                su2-feedback-curr-auto;
+                su2-fbprot-gpio4;
+                su2-auto-curr1;
+                su2-auto-curr2;
+                su2-auto-curr3;
+            };
+        };
+    };
diff --git a/Bindings/mfd/as3711.txt b/Bindings/mfd/as3711.txt
deleted file mode 100644 (file)
index d98cf18..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-AS3711 is an I2C PMIC from Austria MicroSystems with multiple DCDC and LDO power
-supplies, a battery charger and an RTC. So far only bindings for the two stepup
-DCDC converters are defined. Other DCDC and LDO supplies are configured, using
-standard regulator properties, they must belong to a sub-node, called
-"regulators" and be called "sd1" to "sd4" and "ldo1" to "ldo8." Stepup converter
-configuration should be placed in a subnode, called "backlight."
-
-Compulsory properties:
-- compatible           : must be "ams,as3711"
-- reg                  : specifies the I2C address
-
-To use the SU1 converter as a backlight source the following two properties must
-be provided:
-- su1-dev              : framebuffer phandle
-- su1-max-uA           : maximum current
-
-To use the SU2 converter as a backlight source the following two properties must
-be provided:
-- su2-dev              : framebuffer phandle
-- su1-max-uA           : maximum current
-
-Additionally one of these properties must be provided to select the type of
-feedback used:
-- su2-feedback-voltage : voltage feedback is used
-- su2-feedback-curr1   : CURR1 input used for current feedback
-- su2-feedback-curr2   : CURR2 input used for current feedback
-- su2-feedback-curr3   : CURR3 input used for current feedback
-- su2-feedback-curr-auto: automatic current feedback selection
-
-and one of these to select the over-voltage protection pin
-- su2-fbprot-lx-sd4    : LX_SD4 is used for over-voltage protection
-- su2-fbprot-gpio2     : GPIO2 is used for over-voltage protection
-- su2-fbprot-gpio3     : GPIO3 is used for over-voltage protection
-- su2-fbprot-gpio4     : GPIO4 is used for over-voltage protection
-
-If "su2-feedback-curr-auto" is selected, one or more of the following properties
-have to be specified:
-- su2-auto-curr1       : use CURR1 input for current feedback
-- su2-auto-curr2       : use CURR2 input for current feedback
-- su2-auto-curr3       : use CURR3 input for current feedback
-
-Example:
-
-as3711@40 {
-       compatible = "ams,as3711";
-       reg = <0x40>;
-
-       regulators {
-               sd4 {
-                       regulator-name = "1.215V";
-                       regulator-min-microvolt = <1215000>;
-                       regulator-max-microvolt = <1235000>;
-               };
-               ldo2 {
-                       regulator-name = "2.8V CPU";
-                       regulator-min-microvolt = <2800000>;
-                       regulator-max-microvolt = <2800000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-       };
-
-       backlight {
-               compatible = "ams,as3711-bl";
-               su2-dev = <&lcdc>;
-               su2-max-uA = <36000>;
-               su2-feedback-curr-auto;
-               su2-fbprot-gpio4;
-               su2-auto-curr1;
-               su2-auto-curr2;
-               su2-auto-curr3;
-       };
-};
index bdff5b6534538d1262f3459ee72e2c78dd8f250d..6a824351834ee0250e465af5e141b91dbe8a50d7 100644 (file)
@@ -17,7 +17,7 @@ description: |
   node.
 
   The SPMI controller part is provided by
-  Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
+  Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
 
 properties:
   $nodename:
@@ -42,13 +42,6 @@ properties:
 
     additionalProperties: false
 
-    properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
     patternProperties:
       '^ldo[0-9]+$':
         type: object
@@ -66,72 +59,75 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/spmi/spmi.h>
 
-    pmic: pmic@0 {
-      compatible = "hisilicon,hi6421v600-spmi";
-      reg = <0 0>;
-
-      #interrupt-cells = <2>;
-      interrupt-controller;
-      interrupt-parent = <&gpio28>;
-      interrupts = <0 0>;
-
-      regulators {
-        #address-cells = <1>;
+    spmi {
+        #address-cells = <2>;
         #size-cells = <0>;
 
-        ldo3: ldo3 {
-          regulator-name = "ldo3";
-          regulator-min-microvolt = <1500000>;
-          regulator-max-microvolt = <2000000>;
-          regulator-boot-on;
-        };
-
-        ldo4: ldo4 {
-          regulator-name = "ldo4";
-          regulator-min-microvolt = <1725000>;
-          regulator-max-microvolt = <1900000>;
-          regulator-boot-on;
-        };
-
-        ldo9: ldo9 {
-          regulator-name = "ldo9";
-          regulator-min-microvolt = <1750000>;
-          regulator-max-microvolt = <3300000>;
-          regulator-boot-on;
-        };
-
-        ldo15: ldo15 {
-          regulator-name = "ldo15";
-          regulator-min-microvolt = <1800000>;
-          regulator-max-microvolt = <3000000>;
-          regulator-always-on;
-        };
-
-        ldo16: ldo16 {
-          regulator-name = "ldo16";
-          regulator-min-microvolt = <1800000>;
-          regulator-max-microvolt = <3000000>;
-          regulator-boot-on;
-        };
-
-        ldo17: ldo17 {
-          regulator-name = "ldo17";
-          regulator-min-microvolt = <2500000>;
-          regulator-max-microvolt = <3300000>;
-        };
-
-        ldo33: ldo33 {
-          regulator-name = "ldo33";
-          regulator-min-microvolt = <2500000>;
-          regulator-max-microvolt = <3300000>;
-          regulator-boot-on;
-        };
-
-        ldo34: ldo34 {
-          regulator-name = "ldo34";
-          regulator-min-microvolt = <2600000>;
-          regulator-max-microvolt = <3300000>;
+        pmic@0 {
+            compatible = "hisilicon,hi6421v600-spmi";
+            reg = <0 SPMI_USID>;
+
+            #interrupt-cells = <2>;
+            interrupt-controller;
+            interrupt-parent = <&gpio28>;
+            interrupts = <0 0>;
+
+            regulators {
+                ldo3 {
+                    regulator-name = "ldo3";
+                    regulator-min-microvolt = <1500000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-boot-on;
+                };
+
+                ldo4 {
+                    regulator-name = "ldo4";
+                    regulator-min-microvolt = <1725000>;
+                    regulator-max-microvolt = <1900000>;
+                    regulator-boot-on;
+                };
+
+                ldo9 {
+                    regulator-name = "ldo9";
+                    regulator-min-microvolt = <1750000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+
+                ldo15 {
+                    regulator-name = "ldo15";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3000000>;
+                    regulator-always-on;
+                };
+
+                ldo16 {
+                    regulator-name = "ldo16";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3000000>;
+                    regulator-boot-on;
+                };
+
+                ldo17 {
+                    regulator-name = "ldo17";
+                    regulator-min-microvolt = <2500000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+
+                ldo33 {
+                    regulator-name = "ldo33";
+                    regulator-min-microvolt = <2500000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+
+                ldo34 {
+                    regulator-name = "ldo34";
+                    regulator-min-microvolt = <2600000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+            };
         };
-      };
     };
index 9e4eed34dae8afb7fba708783c776a87edbc54f5..0c75d8bde5688217bdd6d2483e23a56ff77b9b6c 100644 (file)
@@ -99,10 +99,12 @@ examples:
   - |
     #include <dt-bindings/mfd/qcom-pm8008.h>
     #include <dt-bindings/interrupt-controller/irq.h>
-    qupv3_se13_i2c {
+
+    i2c {
       #address-cells = <1>;
       #size-cells = <0>;
-      pm8008i@8 {
+
+      pmic@8 {
         compatible = "qcom,pm8008";
         reg = <0x8>;
         #address-cells = <1>;
index 9fa56860393069b14f8b7f4547e3bc84a4304fab..8103fb61a16cc907ab46aeb728aab4a1139523e2 100644 (file)
@@ -66,6 +66,7 @@ properties:
           - qcom,pm8841
           - qcom,pm8909
           - qcom,pm8916
+          - qcom,pm8937
           - qcom,pm8941
           - qcom,pm8950
           - qcom,pm8953
@@ -134,9 +135,15 @@ patternProperties:
     type: object
     $ref: /schemas/sound/qcom,pm8916-wcd-analog-codec.yaml#
 
+  "^battery@[0-9a-f]+$":
+    type: object
+    oneOf:
+      - $ref: /schemas/power/supply/qcom,pm8916-bms-vm.yaml#
+
   "^charger@[0-9a-f]+$":
     type: object
     oneOf:
+      - $ref: /schemas/power/supply/qcom,pm8916-lbc.yaml#
       - $ref: /schemas/power/supply/qcom,pm8941-charger.yaml#
       - $ref: /schemas/power/supply/qcom,pm8941-coincell.yaml#
       - $ref: /schemas/power/supply/qcom,pmi8998-charger.yaml#
index 33c3d023a10681630f22facc5cd69dae0dad960b..798705ab6a46016ee84234dcde0da46f4cb8b2e0 100644 (file)
@@ -29,6 +29,8 @@ properties:
           - qcom,sdx65-tcsr
           - qcom,sm4450-tcsr
           - qcom,sm8150-tcsr
+          - qcom,sm8250-tcsr
+          - qcom,sm8350-tcsr
           - qcom,sm8450-tcsr
           - qcom,tcsr-apq8064
           - qcom,tcsr-apq8084
index b97b0684872931348fd576237c806409815ad253..f154103f32cc2f5e30126875e0702fb22fec14de 100644 (file)
@@ -85,7 +85,7 @@ examples:
         };
 
         i2s@11440000 {
-            compatible = "samsung,exynos7-i2s";
+            compatible = "samsung,exynos5433-i2s", "samsung,exynos7-i2s";
             reg = <0x11440000 0x100>;
             dmas = <&adma 0>, <&adma 2>;
             dma-names = "tx", "rx";
index 996bd4a17ca357ee5b6b8f8e740bf89eb955c9eb..a750fa23d7e7c27f00c271dec8d8e9f1ad3010c5 100644 (file)
@@ -19,7 +19,9 @@ description:
 properties:
   compatible:
     items:
-      - const: sprd,ums512-glbregs
+      - enum:
+          - sprd,ums512-glbregs
+          - sprd,ums9620-glbregs
       - const: syscon
       - const: simple-mfd
 
index 23a63265be3c8cf09e7eb52bc17cc6823909c03f..70b5dfce07d29b10080613c1be3cd768ecea24be 100644 (file)
@@ -61,8 +61,6 @@ required:
   - interrupts
   - clocks
   - clock-names
-  - dmas
-  - dma-names
 
 additionalProperties: false
 
index 8cc951feb7df4bd785c0b282b07abf1c3f27b4bd..59b83ea5e05eefd0c5bfa84d6e302e909452e1c6 100644 (file)
@@ -12,7 +12,7 @@ maintainers:
 
 properties:
   compatible:
-    const: "fsl,dpaa2-console"
+    const: fsl,dpaa2-console
 
   reg:
     maxItems: 1
index 3e99801f77d21dbd34a8535c413562175f45f472..9075add020bf0240b5bbe70871e2730a81ff63cc 100644 (file)
@@ -226,8 +226,8 @@ examples:
           interrupt-parent = <&gic>;
           interrupts = <0 48 4>;
           reg = <0xff160000 0x1000>;
-          clocks = <&clk200>, <&clk200>;
-          clock-names = "clk_xin", "clk_ahb";
+          clocks = <&clk200>, <&clk200>, <&clk1200>;
+          clock-names = "clk_xin", "clk_ahb", "gate";
           clock-output-names = "clk_out_sd0", "clk_in_sd0";
           #clock-cells = <1>;
           clk-phase-sd-hs = <63>, <72>;
@@ -239,8 +239,8 @@ examples:
           interrupt-parent = <&gic>;
           interrupts = <0 126 4>;
           reg = <0xf1040000 0x10000>;
-          clocks = <&clk200>, <&clk200>;
-          clock-names = "clk_xin", "clk_ahb";
+          clocks = <&clk200>, <&clk200>, <&clk1200>;
+          clock-names = "clk_xin", "clk_ahb", "gate";
           clock-output-names = "clk_out_sd0", "clk_in_sd0";
           #clock-cells = <1>;
           clk-phase-sd-hs = <132>, <60>;
index 2459a55ed540b85a1920e06456a7faac938c6836..940b126881674629eb00679e223bbd4900b4c7cc 100644 (file)
@@ -203,7 +203,7 @@ examples:
       bus-width = <4>;
       cap-sd-highspeed;
       cap-mmc-highspeed;
-      cd-gpios  = <&gpio2 31 0x4>;
+      cd-gpios = <&gpio2 31 0x4>;
       st,sig-dir-dat0;
       st,sig-dir-dat2;
       st,sig-dir-cmd;
index c028039bc477ce3efa6133a60e0ff3f03b50c7db..cbd3d6c6c77f8105b742a0d36ac293f8d8edce25 100644 (file)
@@ -20,10 +20,8 @@ properties:
           - const: brcm,sdhci-brcmstb
       - items:
           - enum:
+              - brcm,bcm74165b0-sdhci
               - brcm,bcm7445-sdhci
-          - const: brcm,sdhci-brcmstb
-      - items:
-          - enum:
               - brcm,bcm7425-sdhci
           - const: brcm,sdhci-brcmstb
 
index 3a8e74894ae0184473c1a1bad7ee3bad60461de3..cfe6237716f4eac0ee40b1032bf3416fa4c2db7a 100644 (file)
@@ -27,7 +27,9 @@ properties:
           - marvell,armada-ap806-sdhci
 
       - items:
-          - const: marvell,armada-ap807-sdhci
+          - enum:
+              - marvell,armada-ap807-sdhci
+              - marvell,ac5-sdhci
           - const: marvell,armada-ap806-sdhci
 
       - items:
index 3fffa467e4e1c35cf8005bd864c7c5615edd0596..c532ec92d2d9c69d87cbfc4b1de9b10dd3aa421c 100644 (file)
@@ -145,6 +145,15 @@ properties:
     minimum: 0
     maximum: 7
 
+  mediatek,tuning-step:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Some SoCs need extend tuning step for better delay value to avoid CRC issue.
+      If not present, default tuning step is 32. For eMMC and SD, this can yield
+      satisfactory calibration results in most cases.
+    enum: [32, 64]
+    default: 32
+
   resets:
     maxItems: 1
 
index 94e2287876305491e3083e8d942e5575423e2e43..f7a4c6bc70f6cade41b1e81080cc690261bce537 100644 (file)
@@ -56,7 +56,7 @@ properties:
               - renesas,sdhi-r8a77980  # R-Car V3H
               - renesas,sdhi-r8a77990  # R-Car E3
               - renesas,sdhi-r8a77995  # R-Car D3
-              - renesas,sdhi-r9a07g043 # RZ/G2UL
+              - renesas,sdhi-r9a07g043 # RZ/G2UL and RZ/Five
               - renesas,sdhi-r9a07g044 # RZ/G2{L,LC}
               - renesas,sdhi-r9a07g054 # RZ/V2L
               - renesas,sdhi-r9a08g045 # RZ/G3S
index 6ee78a38bd746659d3378166f77995cda2266f22..5fe65795f7963e55e7fdddd34bf591221b4d174b 100644 (file)
@@ -14,15 +14,22 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - samsung,exynos4210-dw-mshc
-      - samsung,exynos4412-dw-mshc
-      - samsung,exynos5250-dw-mshc
-      - samsung,exynos5420-dw-mshc
-      - samsung,exynos5420-dw-mshc-smu
-      - samsung,exynos7-dw-mshc
-      - samsung,exynos7-dw-mshc-smu
-      - axis,artpec8-dw-mshc
+    oneOf:
+      - enum:
+          - axis,artpec8-dw-mshc
+          - samsung,exynos4210-dw-mshc
+          - samsung,exynos4412-dw-mshc
+          - samsung,exynos5250-dw-mshc
+          - samsung,exynos5420-dw-mshc
+          - samsung,exynos5420-dw-mshc-smu
+          - samsung,exynos7-dw-mshc
+          - samsung,exynos7-dw-mshc-smu
+      - items:
+          - enum:
+              - samsung,exynos5433-dw-mshc-smu
+              - samsung,exynos7885-dw-mshc-smu
+              - samsung,exynos850-dw-mshc-smu
+          - const: samsung,exynos7-dw-mshc-smu
 
   reg:
     maxItems: 1
index 86fae733d9a0ab60df1d96d07135b1118b0d4308..c24c537f62b13f876b5468f0371be12b44012337 100644 (file)
@@ -22,6 +22,8 @@ properties:
       - items:
           - enum:
               - qcom,apq8084-sdhci
+              - qcom,ipq4019-sdhci
+              - qcom,ipq8074-sdhci
               - qcom,msm8226-sdhci
               - qcom,msm8953-sdhci
               - qcom,msm8974-sdhci
index 09455f9fa8deb2fbfb9df8fde684cb3188ef31b8..4869ddef36fd89265a1bfe96bb9663b553ac5084 100644 (file)
@@ -18,7 +18,7 @@ allOf:
             const: marvell,armada-380-sdhci
     then:
       properties:
-        regs:
+        reg:
           minItems: 3
         reg-names:
           minItems: 3
@@ -26,7 +26,7 @@ allOf:
         - reg-names
     else:
       properties:
-        regs:
+        reg:
           maxItems: 1
         reg-names:
           maxItems: 1
index a43eb837f8dae06f5422b8bdabf567f30fd8f9af..42804d95529342e463ab98c2665d2f019c9bc77d 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - rockchip,rk3568-dwcmshc
       - rockchip,rk3588-dwcmshc
       - snps,dwcmshc-sdhci
+      - thead,th1520-dwcmshc
 
   reg:
     maxItems: 1
index b13b5166d20a86f138b7f01b6e6fd6e8ba293320..a6292777e376432cbcff34880d757416bf901584 100644 (file)
@@ -35,6 +35,9 @@ properties:
       - const: biu
       - const: ciu
 
+  iommus:
+    maxItems: 1
+
   altr,sysmgr-syscon:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
@@ -62,6 +65,7 @@ allOf:
         altr,sysmgr-syscon: true
     else:
       properties:
+        iommus: false
         altr,sysmgr-syscon: false
 
 required:
index 3c56efe48efdd84f073f9ae7619b97f4e84884c4..327fa872c0017850b32b1233d06e73f2b4699cd2 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: U-Boot bootloader partition
 
 description: |
-  U-Boot is a bootlodaer commonly used in embedded devices. It's almost always
+  U-Boot is a bootloader commonly used in embedded devices. It's almost always
   located on some kind of flash device.
 
   Device configuration is stored as a set of environment variables that are
index 6107189d276a2bdc58de6786389bd21dca821bd2..2abd036578d1501e48e0d488339bf75f2ae3dac7 100644 (file)
@@ -46,4 +46,10 @@ $defs:
             $ref: dsa-port.yaml#
             unevaluatedProperties: false
 
+oneOf:
+  - required:
+      - ports
+  - required:
+      - ethernet-ports
+
 ...
diff --git a/Bindings/net/dsa/marvell,mv88e6060.yaml b/Bindings/net/dsa/marvell,mv88e6060.yaml
new file mode 100644 (file)
index 0000000..4f1adf0
--- /dev/null
@@ -0,0 +1,88 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/marvell,mv88e6060.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell MV88E6060 DSA switch
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+
+description:
+  The Marvell MV88E6060 switch has been produced and sold by Marvell
+  since at least 2008. The switch has one pin ADDR4 that controls the
+  MDIO address of the switch to be 0x10 or 0x00, and on the MDIO bus
+  connected to the switch, the PHYs inside the switch appear as
+  independent devices on address 0x00-0x04 or 0x10-0x14, so in difference
+  from many other DSA switches this switch does not have an internal
+  MDIO bus for the PHY devices.
+
+properties:
+  compatible:
+    const: marvell,mv88e6060
+    description:
+      The MV88E6060 is the oldest Marvell DSA switch product, and
+      as such a bit limited in features compared to later hardware.
+
+  reg:
+    maxItems: 1
+
+  reset-gpios:
+    description:
+      GPIO to be used to reset the whole device
+    maxItems: 1
+
+allOf:
+  - $ref: dsa.yaml#/$defs/ethernet-ports
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-switch@16 {
+            compatible = "marvell,mv88e6060";
+            reg = <16>;
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                ethernet-port@0 {
+                    reg = <0>;
+                    label = "lan1";
+                };
+                ethernet-port@1 {
+                    reg = <1>;
+                    label = "lan2";
+                };
+                ethernet-port@2 {
+                    reg = <2>;
+                    label = "lan3";
+                };
+                ethernet-port@3 {
+                    reg = <3>;
+                    label = "lan4";
+                };
+                ethernet-port@5 {
+                    reg = <5>;
+                    phy-mode = "rev-mii";
+                    ethernet = <&ethc>;
+                    fixed-link {
+                        speed = <100>;
+                        full-duplex;
+                    };
+                };
+            };
+        };
+    };
diff --git a/Bindings/net/dsa/marvell,mv88e6xxx.yaml b/Bindings/net/dsa/marvell,mv88e6xxx.yaml
new file mode 100644 (file)
index 0000000..19f15bd
--- /dev/null
@@ -0,0 +1,337 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/marvell,mv88e6xxx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell MV88E6xxx DSA switch family
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+
+description:
+  The Marvell MV88E6xxx switch series has been produced and sold
+  by Marvell since at least 2008. The switch has a few compatibles which
+  just indicate the base address of the switch, then operating systems
+  can investigate switch ID registers to find out which actual version
+  of the switch it is dealing with.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - marvell,mv88e6085
+          - marvell,mv88e6190
+          - marvell,mv88e6250
+        description: |
+          marvell,mv88e6085: This switch uses base address 0x10.
+            This switch and its siblings will be autodetected from
+            ID registers found in the switch, so only "marvell,mv88e6085" should be
+            specified. This includes the following list of MV88Exxxx switches:
+            6085, 6095, 6097, 6123, 6131, 6141, 6161, 6165, 6171, 6172, 6175, 6176,
+            6185, 6240, 6320, 6321, 6341, 6350, 6351, 6352
+          marvell,mv88e6190: This switch uses base address 0x00.
+            This switch and its siblings will be autodetected from
+            ID registers found in the switch, so only "marvell,mv88e6190" should be
+            specified. This includes the following list of MV88Exxxx switches:
+            6190, 6190X, 6191, 6290, 6361, 6390, 6390X
+          marvell,mv88e6250: This switch uses base address 0x08 or 0x18.
+            This switch and its siblings will be autodetected from
+            ID registers found in the switch, so only "marvell,mv88e6250" should be
+            specified. This includes the following list of MV88Exxxx switches:
+            6220, 6250
+      - items:
+          - const: marvell,turris-mox-mv88e6085
+          - const: marvell,mv88e6085
+      - items:
+          - const: marvell,turris-mox-mv88e6190
+          - const: marvell,mv88e6190
+
+  reg:
+    maxItems: 1
+
+  eeprom-length:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Set to the length of an EEPROM connected to the switch. Must be
+      set if the switch can not detect the presence and/or size of a connected
+      EEPROM, otherwise optional.
+
+  reset-gpios:
+    description:
+      GPIO to be used to reset the whole device
+    maxItems: 1
+
+  interrupts:
+    description: The switch provides an external interrupt line, but it is
+      not always used by target systems.
+    maxItems: 1
+
+  interrupt-controller:
+    description: The switch has an internal interrupt controller used by
+      the different sub-blocks.
+
+  '#interrupt-cells':
+    description: The internal interrupt controller only supports triggering
+      on active high level interrupts so the second cell must alway be set to
+      IRQ_TYPE_LEVEL_HIGH.
+    const: 2
+
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+    description: Marvell MV88E6xxx switches have an varying combination of
+      internal and external MDIO buses, in some cases a combined bus that
+      can be used both internally and externally. This node is for the
+      primary bus, used internally and sometimes also externally.
+
+  mdio-external:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+    description: Marvell MV88E6xxx switches that have a separate external
+      MDIO bus use this port to access external components on the MDIO bus.
+
+    properties:
+      compatible:
+        const: marvell,mv88e6xxx-mdio-external
+
+    required:
+      - compatible
+
+allOf:
+  - $ref: dsa.yaml#/$defs/ethernet-ports
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-switch@0 {
+            compatible = "marvell,mv88e6085";
+            reg = <0>;
+            reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+
+            mdio {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                sw_phy0: ethernet-phy@0 {
+                    reg = <0x0>;
+                };
+
+                sw_phy1: ethernet-phy@1 {
+                    reg = <0x1>;
+                };
+
+                sw_phy2: ethernet-phy@2 {
+                    reg = <0x2>;
+                };
+
+                sw_phy3: ethernet-phy@3 {
+                    reg = <0x3>;
+                };
+            };
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                ethernet-port@0 {
+                    reg = <0>;
+                    label = "lan4";
+                    phy-handle = <&sw_phy0>;
+                    phy-mode = "internal";
+                };
+
+                ethernet-port@1 {
+                    reg = <1>;
+                    label = "lan3";
+                    phy-handle = <&sw_phy1>;
+                    phy-mode = "internal";
+                };
+
+                ethernet-port@2 {
+                    reg = <2>;
+                    label = "lan2";
+                    phy-handle = <&sw_phy2>;
+                    phy-mode = "internal";
+                };
+
+                ethernet-port@3 {
+                    reg = <3>;
+                    label = "lan1";
+                    phy-handle = <&sw_phy3>;
+                    phy-mode = "internal";
+                };
+
+                ethernet-port@5 {
+                    reg = <5>;
+                    ethernet = <&fec>;
+                    phy-mode = "rgmii-id";
+
+                    fixed-link {
+                        speed = <1000>;
+                        full-duplex;
+                    };
+                };
+            };
+        };
+    };
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-switch@0 {
+            compatible = "marvell,mv88e6190";
+            #interrupt-cells = <2>;
+            interrupt-controller;
+            interrupt-parent = <&gpio1>;
+            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+            pinctrl-0 = <&switch_interrupt_pins>;
+            pinctrl-names = "default";
+            reg = <0>;
+
+            mdio {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                switch0phy1: ethernet-phy@1 {
+                    reg = <0x1>;
+                };
+
+                switch0phy2: ethernet-phy@2 {
+                    reg = <0x2>;
+                };
+
+                switch0phy3: ethernet-phy@3 {
+                    reg = <0x3>;
+                };
+
+                switch0phy4: ethernet-phy@4 {
+                    reg = <0x4>;
+                };
+
+                switch0phy5: ethernet-phy@5 {
+                    reg = <0x5>;
+                };
+
+                switch0phy6: ethernet-phy@6 {
+                    reg = <0x6>;
+                };
+
+                switch0phy7: ethernet-phy@7 {
+                    reg = <0x7>;
+                };
+
+                switch0phy8: ethernet-phy@8 {
+                    reg = <0x8>;
+                };
+            };
+
+            mdio-external {
+                compatible = "marvell,mv88e6xxx-mdio-external";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                phy1: ethernet-phy@b {
+                    reg = <0xb>;
+                    compatible = "ethernet-phy-ieee802.3-c45";
+                };
+
+                phy2: ethernet-phy@c {
+                    reg = <0xc>;
+                    compatible = "ethernet-phy-ieee802.3-c45";
+                };
+            };
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                ethernet-port@0 {
+                    ethernet = <&eth0>;
+                    phy-mode = "rgmii";
+                    reg = <0>;
+
+                    fixed-link {
+                        full-duplex;
+                        pause;
+                        speed = <1000>;
+                    };
+                };
+
+                ethernet-port@1 {
+                    label = "lan1";
+                    phy-handle = <&switch0phy1>;
+                    reg = <1>;
+                };
+
+                ethernet-port@2 {
+                    label = "lan2";
+                    phy-handle = <&switch0phy2>;
+                    reg = <2>;
+                };
+
+                ethernet-port@3 {
+                    label = "lan3";
+                    phy-handle = <&switch0phy3>;
+                    reg = <3>;
+                };
+
+                ethernet-port@4 {
+                    label = "lan4";
+                    phy-handle = <&switch0phy4>;
+                    reg = <4>;
+                };
+
+                ethernet-port@5 {
+                    label = "lan5";
+                    phy-handle = <&switch0phy5>;
+                    reg = <5>;
+                };
+
+                ethernet-port@6 {
+                    label = "lan6";
+                    phy-handle = <&switch0phy6>;
+                    reg = <6>;
+                };
+
+                ethernet-port@7 {
+                    label = "lan7";
+                    phy-handle = <&switch0phy7>;
+                    reg = <7>;
+                };
+
+                ethernet-port@8 {
+                    label = "lan8";
+                    phy-handle = <&switch0phy8>;
+                    reg = <8>;
+                };
+
+                ethernet-port@9 {
+                    /* 88X3310P external phy */
+                    label = "lan9";
+                    phy-handle = <&phy1>;
+                    phy-mode = "xaui";
+                    reg = <9>;
+                };
+
+                ethernet-port@a {
+                    /* 88X3310P external phy */
+                    label = "lan10";
+                    phy-handle = <&phy2>;
+                    phy-mode = "xaui";
+                    reg = <0xa>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/net/dsa/marvell.txt b/Bindings/net/dsa/marvell.txt
deleted file mode 100644 (file)
index 6ec0c18..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-Marvell DSA Switch Device Tree Bindings
----------------------------------------
-
-WARNING: This binding is currently unstable. Do not program it into a
-FLASH never to be changed again. Once this binding is stable, this
-warning will be removed.
-
-If you need a stable binding, use the old dsa.txt binding.
-
-Marvell Switches are MDIO devices. The following properties should be
-placed as a child node of an mdio device.
-
-The properties described here are those specific to Marvell devices.
-Additional required and optional properties can be found in dsa.txt.
-
-The compatibility string is used only to find an identification register,
-which is at a different MDIO base address in different switch families.
-- "marvell,mv88e6085"  : Switch has base address 0x10. Use with models:
-                         6085, 6095, 6097, 6123, 6131, 6141, 6161, 6165,
-                         6171, 6172, 6175, 6176, 6185, 6240, 6320, 6321,
-                         6341, 6350, 6351, 6352
-- "marvell,mv88e6190"  : Switch has base address 0x00. Use with models:
-                         6190, 6190X, 6191, 6290, 6361, 6390, 6390X
-- "marvell,mv88e6250"  : Switch has base address 0x08 or 0x18. Use with model:
-                         6220, 6250
-
-Required properties:
-- compatible           : Should be one of "marvell,mv88e6085",
-                         "marvell,mv88e6190" or "marvell,mv88e6250" as
-                         indicated above
-- reg                  : Address on the MII bus for the switch.
-
-Optional properties:
-
-- reset-gpios          : Should be a gpio specifier for a reset line
-- interrupts           : Interrupt from the switch
-- interrupt-controller : Indicates the switch is itself an interrupt
-                         controller. This is used for the PHY interrupts.
-#interrupt-cells = <2> : Controller uses two cells, number and flag
-- eeprom-length                : Set to the length of an EEPROM connected to the
-                         switch. Must be set if the switch can not detect
-                         the presence and/or size of a connected EEPROM,
-                         otherwise optional.
-- mdio                 : Container of PHY and devices on the switches MDIO
-                         bus.
-- mdio?                : Container of PHYs and devices on the external MDIO
-                         bus. The node must contains a compatible string of
-                         "marvell,mv88e6xxx-mdio-external"
-
-Example:
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-
-               switch0: switch@0 {
-                       compatible = "marvell,mv88e6085";
-                       reg = <0>;
-                       reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
-
-                       mdio {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               switch1phy0: switch1phy0@0 {
-                                       reg = <0>;
-                                       interrupt-parent = <&switch0>;
-                                       interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
-                               };
-                       };
-               };
-       };
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-
-               switch0: switch@0 {
-                       compatible = "marvell,mv88e6190";
-                       reg = <0>;
-                       reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
-
-                       mdio {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               switch1phy0: switch1phy0@0 {
-                                       reg = <0>;
-                                       interrupt-parent = <&switch0>;
-                                       interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
-                               };
-                       };
-
-                       mdio1 {
-                               compatible = "marvell,mv88e6xxx-mdio-external";
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               switch1phy9: switch1phy0@9 {
-                                       reg = <9>;
-                               };
-                       };
-               };
-       };
index b3029c64d0d5a3582036b8b6b3d86197044a8973..c963dc09e8e12a775ba99d3f6dc058a5d6904ccc 100644 (file)
@@ -11,7 +11,6 @@ maintainers:
   - Woojung Huh <Woojung.Huh@microchip.com>
 
 allOf:
-  - $ref: dsa.yaml#/$defs/ethernet-ports
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
 properties:
@@ -78,6 +77,39 @@ required:
   - compatible
   - reg
 
+if:
+  not:
+    properties:
+      compatible:
+        enum:
+          - microchip,ksz8863
+          - microchip,ksz8873
+then:
+  $ref: dsa.yaml#/$defs/ethernet-ports
+else:
+  patternProperties:
+    "^(ethernet-)?ports$":
+      patternProperties:
+        "^(ethernet-)?port@[0-2]$":
+          $ref: dsa-port.yaml#
+          unevaluatedProperties: false
+          properties:
+            microchip,rmii-clk-internal:
+              $ref: /schemas/types.yaml#/definitions/flag
+              description:
+                When ksz88x3 is acting as clock provier (via REFCLKO) it
+                can select between internal and external RMII reference
+                clock. Internal reference clock means that the clock for
+                the RMII of ksz88x3 is provided by the ksz88x3 internally
+                and the REFCLKI pin is unconnected. For the external
+                reference clock, the clock needs to be fed back to ksz88x3
+                via REFCLKI.
+                If microchip,rmii-clk-internal is set, ksz88x3 will provide
+                rmii reference clock internally, otherwise reference clock
+                should be provided externally.
+          dependencies:
+            microchip,rmii-clk-internal: [ethernet]
+
 unevaluatedProperties: false
 
 examples:
index 72ac67ca341513203315572ac8016eeaca6bd914..b3b7e1a1b1278711678c11b620e15ea69e8b731d 100644 (file)
@@ -20,9 +20,26 @@ description:
 
 select: false
 
-properties:
-  $nodename:
-    pattern: "^(ethernet-)?switch(@.*)?$"
+allOf:
+  # This condition is here to satisfy the case where certain device
+  # nodes have to preserve non-standard names because of
+  # backward-compatibility with boot loaders inspecting certain
+  # node names.
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - marvell,turris-mox-mv88e6085
+              - marvell,turris-mox-mv88e6190
+    then:
+      properties:
+        $nodename:
+          pattern: "switch[0-3]@[0-3]+$"
+    else:
+      properties:
+        $nodename:
+          pattern: "^(ethernet-)?switch(@.*)?$"
 
 patternProperties:
   "^(ethernet-)?ports$":
diff --git a/Bindings/net/lantiq,pef2256.yaml b/Bindings/net/lantiq,pef2256.yaml
new file mode 100644 (file)
index 0000000..7da8370
--- /dev/null
@@ -0,0 +1,213 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/lantiq,pef2256.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Lantiq PEF2256
+
+maintainers:
+  - Herve Codina <herve.codina@bootlin.com>
+
+description:
+  The Lantiq PEF2256, also known as Infineon PEF2256 or FALC56, is a framer and
+  line interface component designed to fulfill all required interfacing between
+  an analog E1/T1/J1 line and the digital PCM system highway/H.100 bus.
+
+properties:
+  compatible:
+    items:
+      - const: lantiq,pef2256
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Master Clock
+      - description: System Clock Receive
+      - description: System Clock Transmit
+
+  clock-names:
+    items:
+      - const: mclk
+      - const: sclkr
+      - const: sclkx
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    description:
+      GPIO used to reset the device.
+    maxItems: 1
+
+  pinctrl:
+    $ref: /schemas/pinctrl/pinctrl.yaml#
+    additionalProperties: false
+
+    patternProperties:
+      '-pins$':
+        type: object
+        $ref: /schemas/pinctrl/pinmux-node.yaml#
+        additionalProperties: false
+
+        properties:
+          pins:
+            enum: [ RPA, RPB, RPC, RPD, XPA, XPB, XPC, XPD ]
+
+          function:
+            enum: [ SYPR, RFM, RFMB, RSIGM, RSIG, DLR, FREEZE, RFSP, LOS,
+                    SYPX, XFMS, XSIG, TCLK, XMFB, XSIGM, DLX, XCLK, XLT,
+                    GPI, GPOH, GPOL ]
+
+        required:
+          - pins
+          - function
+
+  lantiq,data-rate-bps:
+    enum: [2048000, 4096000, 8192000, 16384000]
+    default: 2048000
+    description:
+      Data rate (bit per seconds) on the system highway.
+
+  lantiq,clock-falling-edge:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Data is sent on falling edge of the clock (and received on the rising
+      edge). If 'clock-falling-edge' is not present, data is sent on the
+      rising edge (and received on the falling edge).
+
+  lantiq,channel-phase:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3, 4, 5, 6, 7]
+    default: 0
+    description: |
+      The pef2256 delivers a full frame (32 8-bit time-slots in E1 and 24 8-bit
+      time-slots 8 8-bit signaling in E1/J1) every 125us. This lead to a data
+      rate of 2048000 bit/s. When lantiq,data-rate-bps is more than 2048000
+      bit/s, the data (all 32 8-bit) present in the frame are interleave with
+      unused time-slots. The lantiq,channel-phase property allows to set the
+      correct alignment of the interleave mechanism.
+      For instance, suppose lantiq,data-rate-bps = 8192000 (ie 4*2048000), and
+      lantiq,channel-phase = 2, the interleave schema with unused time-slots
+      (nu) and used time-slots (XX) for TSi is
+        nu nu XX nu nu nu XX nu nu nu XX nu
+        <-- TSi --> <- TSi+1 -> <- TSi+2 ->
+      With lantiq,data-rate-bps = 8192000, and lantiq,channel-phase = 1, the
+      interleave schema is
+        nu XX nu nu nu XX nu nu nu XX nu nu
+        <-- TSi --> <- TSi+1 -> <- TSi+2 ->
+      With lantiq,data-rate-bps = 4096000 (ie 2*2048000), and
+      lantiq,channel-phase = 1, the interleave schema is
+        nu    XX    nu    XX    nu    XX
+        <-- TSi --> <- TSi+1 -> <- TSi+2 ->
+
+patternProperties:
+  '^codec(-([0-9]|[1-2][0-9]|3[0-1]))?$':
+    type: object
+    $ref: /schemas/sound/dai-common.yaml
+    unevaluatedProperties: false
+    description:
+      Codec provided by the pef2256. This codec allows to use some of the PCM
+      system highway time-slots as audio channels to transport audio data over
+      the E1/T1/J1 lines.
+      The time-slots used by the codec must be set and so, the properties
+      'dai-tdm-slot-num', 'dai-tdm-slot-width', 'dai-tdm-slot-tx-mask' and
+      'dai-tdm-slot-rx-mask' must be present in the sound card node for
+      sub-nodes that involve the codec. The codec uses 8-bit time-slots.
+      'dai-tdm-tdm-slot-with' must be set to 8.
+      The tx and rx masks define the pef2256 time-slots assigned to the codec.
+
+    properties:
+      compatible:
+        const: lantiq,pef2256-codec
+
+      '#sound-dai-cells':
+        const: 0
+
+    required:
+      - compatible
+      - '#sound-dai-cells'
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    pef2256: framer@2000000 {
+      compatible = "lantiq,pef2256";
+      reg = <0x2000000 0x100>;
+      interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+      interrupt-parent = <&intc>;
+      clocks = <&clk_mclk>, <&clk_sclkr>, <&clk_sclkx>;
+      clock-names = "mclk", "sclkr", "sclkx";
+      reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+      lantiq,data-rate-bps = <4096000>;
+
+      pinctrl {
+        pef2256_rpa_sypr: rpa-pins {
+          pins = "RPA";
+          function = "SYPR";
+        };
+        pef2256_xpa_sypx: xpa-pins {
+          pins = "XPA";
+          function = "SYPX";
+        };
+      };
+
+      pef2256_codec0: codec-0 {
+        compatible = "lantiq,pef2256-codec";
+        #sound-dai-cells = <0>;
+        sound-name-prefix = "PEF2256_0";
+      };
+
+      pef2256_codec1: codec-1 {
+        compatible = "lantiq,pef2256-codec";
+        #sound-dai-cells = <0>;
+        sound-name-prefix = "PEF2256_1";
+      };
+    };
+
+    sound {
+      compatible = "simple-audio-card";
+      #address-cells = <1>;
+      #size-cells = <0>;
+      simple-audio-card,dai-link@0 { /* CPU DAI1 - pef2256 codec 1 */
+        reg = <0>;
+        cpu {
+          sound-dai = <&cpu_dai1>;
+        };
+        codec {
+          sound-dai = <&pef2256_codec0>;
+          dai-tdm-slot-num = <4>;
+          dai-tdm-slot-width = <8>;
+          /* TS 1, 2, 3, 4 */
+          dai-tdm-slot-tx-mask = <0 1 1 1 1>;
+          dai-tdm-slot-rx-mask = <0 1 1 1 1>;
+        };
+      };
+      simple-audio-card,dai-link@1 { /* CPU DAI2 - pef2256 codec 2 */
+        reg = <1>;
+        cpu {
+          sound-dai = <&cpu_dai2>;
+        };
+        codec {
+          sound-dai = <&pef2256_codec1>;
+          dai-tdm-slot-num = <4>;
+          dai-tdm-slot-width = <8>;
+          /* TS 5, 6, 7, 8 */
+          dai-tdm-slot-tx-mask = <0 0 0 0 0 1 1 1 1>;
+          dai-tdm-slot-rx-mask = <0 0 0 0 0 1 1 1 1>;
+        };
+      };
+    };
diff --git a/Bindings/net/marvell,aquantia.yaml b/Bindings/net/marvell,aquantia.yaml
new file mode 100644 (file)
index 0000000..9854fab
--- /dev/null
@@ -0,0 +1,116 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/marvell,aquantia.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell Aquantia Ethernet PHY
+
+maintainers:
+  - Christian Marangi <ansuelsmth@gmail.com>
+
+description: |
+  Marvell Aquantia Ethernet PHY require a firmware to be loaded to actually
+  work.
+
+  This can be done and is implemented by OEM in 3 different way:
+    - Attached SPI flash directly to the PHY with the firmware. The PHY
+      will self load the firmware in the presence of this configuration.
+    - Read from a dedicated partition on system NAND declared in an
+      NVMEM cell, and loaded to the PHY using its mailbox interface.
+    - Manually provided firmware loaded from a file in the filesystem.
+
+allOf:
+  - $ref: ethernet-phy.yaml#
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - ethernet-phy-id03a1.b445
+          - ethernet-phy-id03a1.b460
+          - ethernet-phy-id03a1.b4a2
+          - ethernet-phy-id03a1.b4d0
+          - ethernet-phy-id03a1.b4e0
+          - ethernet-phy-id03a1.b5c2
+          - ethernet-phy-id03a1.b4b0
+          - ethernet-phy-id03a1.b662
+          - ethernet-phy-id03a1.b712
+          - ethernet-phy-id31c3.1c12
+  required:
+    - compatible
+
+properties:
+  reg:
+    maxItems: 1
+
+  firmware-name:
+    description: specify the name of PHY firmware to load
+
+  nvmem-cells:
+    description: phandle to the firmware nvmem cell
+    maxItems: 1
+
+  nvmem-cell-names:
+    const: firmware
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-phy@0 {
+            compatible = "ethernet-phy-id31c3.1c12",
+                         "ethernet-phy-ieee802.3-c45";
+
+            reg = <0>;
+            firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld";
+        };
+
+        ethernet-phy@1 {
+            compatible = "ethernet-phy-id31c3.1c12",
+                         "ethernet-phy-ieee802.3-c45";
+
+            reg = <1>;
+            nvmem-cells = <&aqr_fw>;
+            nvmem-cell-names = "firmware";
+        };
+    };
+
+    flash {
+        compatible = "jedec,spi-nor";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        partitions {
+            compatible = "fixed-partitions";
+            #address-cells = <1>;
+            #size-cells = <1>;
+
+            /* ... */
+
+            partition@650000 {
+                compatible = "nvmem-cells";
+                label = "0:ethphyfw";
+                reg = <0x650000 0x80000>;
+                read-only;
+                #address-cells = <1>;
+                #size-cells = <1>;
+
+                aqr_fw: aqr_fw@0 {
+                    reg = <0x0 0x5f42a>;
+                };
+            };
+
+            /* ... */
+
+        };
+    };
index 3a33251680480852ac71986c19ea1b61e287b5d3..ab838c1ffeed0945d2f9c6facd1593722ee27d4a 100644 (file)
@@ -50,11 +50,14 @@ examples:
                     #address-cells = <1>;
                     #size-cells = <0>;
 
-                    switch@0 {
+                    ethernet-switch@0 {
                             compatible = "marvell,mv88e6190";
                             reg = <0x0>;
 
-                            ports {
+                            ethernet-ports {
+                                    #address-cells = <1>;
+                                    #size-cells = <0>;
+
                                     /* Port definitions */
                             };
 
index e35da8b01dc257f9d5a96fcad1807ae5ea3df06e..73429855d5848f978ad722253850771e6c2bdec8 100644 (file)
@@ -39,28 +39,6 @@ required:
 allOf:
   - $ref: mdio.yaml#
 
-  - if:
-      required:
-        - interrupts
-
-    then:
-      properties:
-        reg:
-          items:
-            - items:
-                - $ref: /schemas/types.yaml#/definitions/cell
-                - const: 0x84
-
-    else:
-      properties:
-        reg:
-          items:
-            - items:
-                - $ref: /schemas/types.yaml#/definitions/cell
-                - enum:
-                    - 0x4
-                    - 0x10
-
 unevaluatedProperties: false
 
 examples:
index 5ea8b73663a50c3f55999fb8cc911af491d46086..16ff892f7bbd0aa8f965d602e5ccbd3b18ec9253 100644 (file)
@@ -78,8 +78,8 @@ examples:
     pcie@0 {
         #address-cells = <3>;
         #size-cells = <2>;
-        ranges = <0x0 0x0 0x0 0x0 0x0 0x0>;
-        reg = <0x0 0x0 0x0 0x0 0x0 0x0>;
+        ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
+        reg = <0x0 0x1000>;
         device_type = "pci";
 
         switch@0,0 {
index 66a95191bd7766f0659f57e57ff60b35dbbbd616..1bacc0eeff7573bb190d87a52103bf2ce1df7374 100644 (file)
@@ -15,15 +15,22 @@ description:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - mediatek,mt7622-sgmiisys
-          - mediatek,mt7629-sgmiisys
-          - mediatek,mt7981-sgmiisys_0
-          - mediatek,mt7981-sgmiisys_1
-          - mediatek,mt7986-sgmiisys_0
-          - mediatek,mt7986-sgmiisys_1
-      - const: syscon
+    oneOf:
+      - items:
+          - enum:
+              - mediatek,mt7622-sgmiisys
+              - mediatek,mt7629-sgmiisys
+              - mediatek,mt7981-sgmiisys_0
+              - mediatek,mt7981-sgmiisys_1
+              - mediatek,mt7986-sgmiisys_0
+              - mediatek,mt7986-sgmiisys_1
+          - const: syscon
+      - items:
+          - enum:
+              - mediatek,mt7988-sgmiisys0
+              - mediatek,mt7988-sgmiisys1
+          - const: simple-mfd
+          - const: syscon
 
   reg:
     maxItems: 1
@@ -35,11 +42,51 @@ properties:
     description: Invert polarity of the SGMII data lanes
     type: boolean
 
+  pcs:
+    type: object
+    description: MediaTek LynxI HSGMII PCS
+    properties:
+      compatible:
+        const: mediatek,mt7988-sgmii
+
+      clocks:
+        maxItems: 3
+
+      clock-names:
+        items:
+          - const: sgmii_sel
+          - const: sgmii_tx
+          - const: sgmii_rx
+
+    required:
+      - compatible
+      - clocks
+      - clock-names
+
+    additionalProperties: false
+
 required:
   - compatible
   - reg
   - '#clock-cells'
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - mediatek,mt7988-sgmiisys0
+              - mediatek,mt7988-sgmiisys1
+
+    then:
+      required:
+        - pcs
+
+    else:
+      properties:
+        pcs: false
+
 additionalProperties: false
 
 examples:
index 2d5e4ffb2f9ef896318274b5695268a6e38a50f9..c30218684cfe462905466aab22ab56b7352e3fa5 100644 (file)
@@ -43,15 +43,21 @@ description:
 
 properties:
   compatible:
-    enum:
-      - qcom,msm8998-ipa
-      - qcom,sc7180-ipa
-      - qcom,sc7280-ipa
-      - qcom,sdm845-ipa
-      - qcom,sdx55-ipa
-      - qcom,sdx65-ipa
-      - qcom,sm6350-ipa
-      - qcom,sm8350-ipa
+    oneOf:
+      - enum:
+          - qcom,msm8998-ipa
+          - qcom,sc7180-ipa
+          - qcom,sc7280-ipa
+          - qcom,sdm845-ipa
+          - qcom,sdx55-ipa
+          - qcom,sdx65-ipa
+          - qcom,sm6350-ipa
+          - qcom,sm8350-ipa
+          - qcom,sm8550-ipa
+      - items:
+          - enum:
+              - qcom,sm8650-ipa
+          - const: qcom,sm8550-ipa
 
   reg:
     items:
index 5d074f27d4620390b0011fa70a9f6e1b094fb5fe..890f7858d0dc4c794a3f37bee2b2bfde248bba45 100644 (file)
@@ -55,9 +55,10 @@ properties:
 
       - items:
           - enum:
-              - renesas,r9a07g043-gbeth # RZ/G2UL
+              - renesas,r9a07g043-gbeth # RZ/G2UL and RZ/Five
               - renesas,r9a07g044-gbeth # RZ/G2{L,LC}
               - renesas,r9a07g054-gbeth # RZ/V2L
+              - renesas,r9a08g045-gbeth # RZ/G3S
           - const: renesas,rzg2l-gbeth  # RZ/{G2L,G2UL,V2L} family
 
   reg: true
diff --git a/Bindings/net/renesas,ethertsn.yaml b/Bindings/net/renesas,ethertsn.yaml
new file mode 100644 (file)
index 0000000..ea35d19
--- /dev/null
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/renesas,ethertsn.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas Ethernet TSN End-station
+
+maintainers:
+  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
+
+description:
+  The RTSN device provides Ethernet network using a 10 Mbps, 100 Mbps, or 1
+  Gbps full-duplex link via MII/GMII/RMII/RGMII. Depending on the connected PHY.
+
+allOf:
+  - $ref: ethernet-controller.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - renesas,r8a779g0-ethertsn       # R-Car V4H
+      - const: renesas,rcar-gen4-ethertsn
+
+  reg:
+    items:
+      - description: TSN End Station target
+      - description: generalized Precision Time Protocol target
+
+  reg-names:
+    items:
+      - const: tsnes
+      - const: gptp
+
+  interrupts:
+    items:
+      - description: TX data interrupt
+      - description: RX data interrupt
+
+  interrupt-names:
+    items:
+      - const: tx
+      - const: rx
+
+  clocks:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  phy-mode:
+    contains:
+      enum:
+        - mii
+        - rgmii
+
+  phy-handle:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Specifies a reference to a node representing a PHY device.
+
+  rx-internal-delay-ps:
+    enum: [0, 1800]
+    default: 0
+
+  tx-internal-delay-ps:
+    enum: [0, 2000]
+    default: 0
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^ethernet-phy@[0-9a-f]$":
+    type: object
+    $ref: ethernet-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - interrupt-names
+  - clocks
+  - power-domains
+  - resets
+  - phy-mode
+  - phy-handle
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/r8a779g0-cpg-mssr.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/r8a779g0-sysc.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    tsn0: ethernet@e6460000 {
+        compatible = "renesas,r8a779g0-ethertsn", "renesas,rcar-gen4-ethertsn";
+        reg = <0xe6460000 0x7000>,
+              <0xe6449000 0x500>;
+        reg-names = "tsnes", "gptp";
+        interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "tx", "rx";
+        clocks = <&cpg CPG_MOD 2723>;
+        power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+        resets = <&cpg 2723>;
+
+        phy-mode = "rgmii";
+        tx-internal-delay-ps = <2000>;
+        phy-handle = <&phy3>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        phy3: ethernet-phy@3 {
+            compatible = "ethernet-phy-ieee802.3-c45";
+            reg = <0>;
+            interrupt-parent = <&gpio4>;
+            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+            reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
+        };
+    };
index 973e478a399d37f76738671a96bdcb0f25b8d6a4..bf6cbc7c2ba3b5cb1ffc26d8d456d0073633a6fe 100644 (file)
@@ -120,7 +120,7 @@ examples:
       pinctrl-names = "default";
       pinctrl-0 = <&cps_sfpp0_pins>;
       tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
-      tx-fault-gpios  = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
+      tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
     };
 
     mdio {
index 1d33d80af11c3c8d2fb1d7f9fc04b630d2a047bb..bbe89ea9590ceb53df4a0f589787c9990aec0219 100644 (file)
@@ -122,6 +122,20 @@ properties:
       and "phy-handle" should point to an external PHY if exists.
     maxItems: 1
 
+  dmas:
+    minItems: 2
+    maxItems: 32
+    description: TX and RX DMA channel phandle
+
+  dma-names:
+    items:
+      pattern: "^[tr]x_chan([0-9]|1[0-5])$"
+    description:
+      Should be "tx_chan0", "tx_chan1" ... "tx_chan15" for DMA Tx channel
+      Should be "rx_chan0", "rx_chan1" ... "rx_chan15" for DMA Rx channel
+    minItems: 2
+    maxItems: 32
+
 required:
   - compatible
   - interrupts
@@ -143,6 +157,8 @@ examples:
         clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
         phy-mode = "mii";
         reg = <0x40c00000 0x40000>,<0x50c00000 0x40000>;
+        dmas = <&xilinx_dma 0>, <&xilinx_dma 1>;
+        dma-names = "tx_chan0", "rx_chan0";
         xlnx,rxcsum = <0x2>;
         xlnx,rxmem = <0x800>;
         xlnx,txcsum = <0x2>;
index a69de3e9228283d03b120a1a77eec2daaee8ef75..92bfe25f0571ebdc3d1df383be0a90ef7258eebb 100644 (file)
@@ -24,6 +24,7 @@ properties:
       - st,stm32f4-otp
       - st,stm32mp13-bsec
       - st,stm32mp15-bsec
+      - st,stm32mp25-bsec
 
   reg:
     maxItems: 1
index 7e15aae7d69e9780dc2fc7adfa28b0ebec0acaaa..22491f7f88521c853c1ed8e91c5f9d5db2d095ef 100644 (file)
@@ -64,6 +64,24 @@ properties:
 
   aspm-no-l0s: true
 
+  brcm,clkreq-mode:
+    description: A string that determines the operating
+      clkreq mode of the PCIe RC HW with respect to controlling the refclk
+      signal.  There are three different modes -- "safe", which drives the
+      refclk signal unconditionally and will work for all devices but does
+      not provide any power savings; "no-l1ss" -- which provides Clock
+      Power Management, L0s, and L1, but cannot provide L1 substate (L1SS)
+      power savings. If the downstream device connected to the RC is L1SS
+      capable AND the OS enables L1SS, all PCIe traffic may abruptly halt,
+      potentially hanging the system; "default" -- which provides L0s, L1,
+      and L1SS, but not compliant to provide Clock Power Management;
+      specifically, may not be able to meet the T_CLRon max timing of 400ns
+      as specified in "Dynamic Clock Control", section 3.2.5.2.2 PCI
+      Express Mini CEM 2.1 specification.  This situation is atypical and
+      should happen only with older devices.
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ safe, no-l1ss, default ]
+
   brcm,scb-sizes:
     description: u64 giving the 64bit PCIe memory
       viewport size of a memory controller.  There may be up to
index eadba38171e135a00b513739aadbc492cc0be976..a93ab3b540666427adb21a2f1631f3a315a0a0c6 100644 (file)
@@ -41,6 +41,10 @@ properties:
           - qcom,pcie-sm8450-pcie0
           - qcom,pcie-sm8450-pcie1
           - qcom,pcie-sm8550
+      - items:
+          - enum:
+              - qcom,pcie-sm8650
+          - const: qcom,pcie-sm8550
       - items:
           - const: qcom,pcie-msm8998
           - const: qcom,pcie-msm8996
@@ -62,7 +66,8 @@ properties:
     maxItems: 8
 
   iommu-map:
-    maxItems: 2
+    minItems: 1
+    maxItems: 16
 
   # Common definitions for clocks, clock-names and reset.
   # Platform constraints are described later.
@@ -88,7 +93,7 @@ properties:
     minItems: 1
     maxItems: 12
 
-  resets-names:
+  reset-names:
     minItems: 1
     maxItems: 12
 
@@ -478,6 +483,33 @@ allOf:
           items:
             - const: pci # PCIe core reset
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,pcie-sc8180x
+    then:
+      properties:
+        clocks:
+          minItems: 8
+          maxItems: 8
+        clock-names:
+          items:
+            - const: pipe # PIPE clock
+            - const: aux # Auxiliary clock
+            - const: cfg # Configuration clock
+            - const: bus_master # Master AXI clock
+            - const: bus_slave # Slave AXI clock
+            - const: slave_q2a # Slave Q2A clock
+            - const: ref # REFERENCE clock
+            - const: tbu # PCIe TBU clock
+        resets:
+          maxItems: 1
+        reset-names:
+          items:
+            - const: pci # PCIe core reset
+
   - if:
       properties:
         compatible:
@@ -526,8 +558,33 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,pcie-sc8180x
               - qcom,pcie-sm8150
+    then:
+      properties:
+        clocks:
+          minItems: 8
+          maxItems: 8
+        clock-names:
+          items:
+            - const: pipe # PIPE clock
+            - const: aux # Auxiliary clock
+            - const: cfg # Configuration clock
+            - const: bus_master # Master AXI clock
+            - const: bus_slave # Slave AXI clock
+            - const: slave_q2a # Slave Q2A clock
+            - const: tbu # PCIe TBU clock
+            - const: ref # REFERENCE clock
+        resets:
+          maxItems: 1
+        reset-names:
+          items:
+            - const: pci # PCIe core reset
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
               - qcom,pcie-sm8250
     then:
       oneOf:
index 8fdfbc763d704532d06c6628c341b8e0f61e7011..b6a7cb32f61e5d4f1d0cff979bf3e7ecd46116fb 100644 (file)
@@ -68,6 +68,15 @@ properties:
   phy-names:
     const: pcie
 
+  vpcie1v5-supply:
+    description: The 1.5v regulator to use for PCIe.
+
+  vpcie3v3-supply:
+    description: The 3.3v regulator to use for PCIe.
+
+  vpcie12v-supply:
+    description: The 12v regulator to use for PCIe.
+
 required:
   - compatible
   - reg
@@ -121,5 +130,7 @@ examples:
              clock-names = "pcie", "pcie_bus";
              power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
              resets = <&cpg 319>;
+             vpcie3v3-supply = <&pcie_3v3>;
+             vpcie12v-supply = <&pcie_12v>;
          };
     };
index 1ae8dcfa072cea19c1b897ffaa91fff9b7dcf703..5f719218c472c8476ae8fbfb6b65b898fe49ff6b 100644 (file)
@@ -49,6 +49,7 @@ properties:
       - description: APB clock for PCIe
       - description: Auxiliary clock for PCIe
       - description: PIPE clock
+      - description: Reference clock for PCIe
 
   clock-names:
     minItems: 5
@@ -59,6 +60,7 @@ properties:
       - const: pclk
       - const: aux
       - const: pipe
+      - const: ref
 
   interrupts:
     items:
index 62292185fe2e460d167a629669bc78496fc6be46..97f2579ea9082229c03a094d74d25da4e54eb8e4 100644 (file)
@@ -10,13 +10,11 @@ title: TI J721E PCI EP (PCIe Wrapper)
 maintainers:
   - Kishon Vijay Abraham I <kishon@ti.com>
 
-allOf:
-  - $ref: cdns-pcie-ep.yaml#
-
 properties:
   compatible:
     oneOf:
       - const: ti,j721e-pcie-ep
+      - const: ti,j784s4-pcie-ep
       - description: PCIe EP controller in AM64
         items:
           - const: ti,am64-pcie-ep
@@ -65,6 +63,41 @@ properties:
     items:
       - const: link_state
 
+allOf:
+  - $ref: cdns-pcie-ep.yaml#
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,am64-pcie-ep
+    then:
+      properties:
+        num-lanes:
+          const: 1
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j7200-pcie-ep
+            - ti,j721e-pcie-ep
+    then:
+      properties:
+        num-lanes:
+          minimum: 1
+          maximum: 2
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j784s4-pcie-ep
+    then:
+      properties:
+        num-lanes:
+          minimum: 1
+          maximum: 4
+
 required:
   - compatible
   - reg
index a2c5eaea57f503f27392b7424bda35fb43d27950..b7a534cef24d314d20d9e725575301dcb499a782 100644 (file)
@@ -10,13 +10,11 @@ title: TI J721E PCI Host (PCIe Wrapper)
 maintainers:
   - Kishon Vijay Abraham I <kishon@ti.com>
 
-allOf:
-  - $ref: cdns-pcie-host.yaml#
-
 properties:
   compatible:
     oneOf:
       - const: ti,j721e-pcie-host
+      - const: ti,j784s4-pcie-host
       - description: PCIe controller in AM64
         items:
           - const: ti,am64-pcie-host
@@ -94,6 +92,41 @@ properties:
       interrupts:
         maxItems: 1
 
+allOf:
+  - $ref: cdns-pcie-host.yaml#
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,am64-pcie-host
+    then:
+      properties:
+        num-lanes:
+          const: 1
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j7200-pcie-host
+            - ti,j721e-pcie-host
+    then:
+      properties:
+        num-lanes:
+          minimum: 1
+          maximum: 2
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j784s4-pcie-host
+    then:
+      properties:
+        num-lanes:
+          minimum: 1
+          maximum: 4
+
 required:
   - compatible
   - reg
index 53da2edd7c9abef7d13c588af2fbb63a17d509eb..120e3bb1e5454a4e2d6a68d846ded1f8d656719b 100644 (file)
@@ -83,7 +83,7 @@ examples:
                   <0x0 0x28050000 0x0 0x00010000>,
                   <0x0 0x24200000 0x0 0x00002000>,
                   <0x0 0x24162000 0x0 0x00001000>;
-            reg-names  = "dbi", "config", "ulreg", "smu", "mpu";
+            reg-names = "dbi", "config", "ulreg", "smu", "mpu";
             device_type = "pci";
             bus-range = <0x00 0xff>;
             num-lanes = <2>;
index e9fad4b3de68405198e8a3c32b4334ea57b135dc..6c96a4204e5d68f7dc42d7bddd0ef6a28b9edcdd 100644 (file)
@@ -27,6 +27,9 @@ properties:
               - fsl,imx8mq-ddr-pmu
               - fsl,imx8mp-ddr-pmu
           - const: fsl,imx8m-ddr-pmu
+      - items:
+          - const: fsl,imx8dxl-ddr-pmu
+          - const: fsl,imx8-ddr-pmu
 
   reg:
     maxItems: 1
index c8c83acfb871d0f45a871bcac7167ca4fbc91997..81c2654b7e57e98ce89e44c46b6135b7fce49b59 100644 (file)
@@ -16,20 +16,8 @@ properties:
   "#phy-cells":
     const: 0
 
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - "#phy-cells"
 
 additionalProperties: false
-
-examples:
-  - |
-    phy@0 {
-          compatible = "amlogic,g12a-mipi-dphy-analog";
-          reg = <0x0 0xc>;
-          #phy-cells = <0>;
-    };
index 009a3980831856b9db5d99d90c8b8f670dcf5333..70def36e5688d0153b92166e5e35de67378c6698 100644 (file)
@@ -9,16 +9,6 @@ title: Amlogic AXG shared MIPI/PCIE analog PHY
 maintainers:
   - Remi Pommarel <repk@triplefau.lt>
 
-description: |+
-  The Everything-Else Power Domains node should be the child of a syscon
-  node with the required property:
-
-  - compatible: Should be the following:
-                "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"
-
-  Refer to the bindings described in
-  Documentation/devicetree/bindings/mfd/syscon.yaml
-
 properties:
   compatible:
     const: amlogic,axg-mipi-pcie-analog-phy
@@ -31,10 +21,3 @@ required:
   - "#phy-cells"
 
 additionalProperties: false
-
-examples:
-  - |
-    mpphy: phy {
-          compatible = "amlogic,axg-mipi-pcie-analog-phy";
-          #phy-cells = <0>;
-    };
index 6703689fcdbe103f791a189e0bb8f8ab095975d9..f6e494d0d89b82dabed0265782dbd9cd83de5737 100644 (file)
@@ -31,6 +31,7 @@ properties:
       - items:
           - enum:
               - mediatek,mt8188-mipi-tx
+              - mediatek,mt8195-mipi-tx
               - mediatek,mt8365-mipi-tx
           - const: mediatek,mt8183-mipi-tx
       - const: mediatek,mt2701-mipi-tx
index 2bb91542e984e788b20db49204cd97880ba6b224..acba0720125ddd3d327df154a3f30c6e2e8608aa 100644 (file)
@@ -235,6 +235,15 @@ patternProperties:
           Specify the flag to enable BC1.2 if support it
         type: boolean
 
+      mediatek,force-mode:
+        description:
+          The force mode is used to manually switch the shared phy mode between
+          USB3 and PCIe, when USB3 phy type is selected by the consumer, and
+          force-mode is set, will cause phy's power and pipe toggled and force
+          phy as USB3 mode which switched from default PCIe mode. But perfer to
+          use the property "mediatek,syscon-type" for newer SoCs that support it.
+        type: boolean
+
       mediatek,syscon-type:
         $ref: /schemas/types.yaml#/definitions/phandle-array
         maxItems: 1
index 2c3d6553a7bac692f688adaf9ac5ff568d862e46..6c03f2d5fca3cca6ad0cccc4ae3f8679e4c59026 100644 (file)
@@ -36,6 +36,8 @@ properties:
       - qcom,sm8450-qmp-gen4x2-pcie-phy
       - qcom,sm8550-qmp-gen3x2-pcie-phy
       - qcom,sm8550-qmp-gen4x2-pcie-phy
+      - qcom,sm8650-qmp-gen3x2-pcie-phy
+      - qcom,sm8650-qmp-gen4x2-pcie-phy
 
   reg:
     minItems: 1
@@ -147,6 +149,8 @@ allOf:
               - qcom,sm8450-qmp-gen3x2-pcie-phy
               - qcom,sm8550-qmp-gen3x2-pcie-phy
               - qcom,sm8550-qmp-gen4x2-pcie-phy
+              - qcom,sm8650-qmp-gen3x2-pcie-phy
+              - qcom,sm8650-qmp-gen4x2-pcie-phy
     then:
       properties:
         clocks:
@@ -189,6 +193,7 @@ allOf:
           contains:
             enum:
               - qcom,sm8550-qmp-gen4x2-pcie-phy
+              - qcom,sm8650-qmp-gen4x2-pcie-phy
     then:
       properties:
         resets:
index f3a3296c811cb3403201642703c77060b7ed1c36..8474eef8d0ff5233a075bf5c17ca0abaa14fbd41 100644 (file)
@@ -32,6 +32,7 @@ properties:
       - qcom,sm8350-qmp-ufs-phy
       - qcom,sm8450-qmp-ufs-phy
       - qcom,sm8550-qmp-ufs-phy
+      - qcom,sm8650-qmp-ufs-phy
 
   reg:
     maxItems: 1
@@ -112,6 +113,7 @@ allOf:
               - qcom,sm8250-qmp-ufs-phy
               - qcom,sm8350-qmp-ufs-phy
               - qcom,sm8550-qmp-ufs-phy
+              - qcom,sm8650-qmp-ufs-phy
     then:
       properties:
         clocks:
index 57702f7f2a46cf54bcf6f660704144780faee8f7..15d82c67f157b6ceadc366540fca0c200201d920 100644 (file)
@@ -32,6 +32,7 @@ properties:
       - qcom,sm8150-qmp-usb3-uni-phy
       - qcom,sm8250-qmp-usb3-uni-phy
       - qcom,sm8350-qmp-usb3-uni-phy
+      - qcom,x1e80100-qmp-usb3-uni-phy
 
 
   reg:
@@ -135,6 +136,7 @@ allOf:
               - qcom,sm8150-qmp-usb3-uni-phy
               - qcom,sm8250-qmp-usb3-uni-phy
               - qcom,sm8350-qmp-usb3-uni-phy
+              - qcom,x1e80100-qmp-usb3-uni-phy
     then:
       properties:
         clocks:
@@ -171,6 +173,7 @@ allOf:
             enum:
               - qcom,sa8775p-qmp-usb3-uni-phy
               - qcom,sc8280xp-qmp-usb3-uni-phy
+              - qcom,x1e80100-qmp-usb3-uni-phy
     then:
       required:
         - power-domains
index 9af203dc8793f34ee6adf58813c5838fc71200e8..2d0d7e9e643117f5ec625e49270ac94c70603e7e 100644 (file)
@@ -27,6 +27,8 @@ properties:
       - qcom,sm8350-qmp-usb3-dp-phy
       - qcom,sm8450-qmp-usb3-dp-phy
       - qcom,sm8550-qmp-usb3-dp-phy
+      - qcom,sm8650-qmp-usb3-dp-phy
+      - qcom,x1e80100-qmp-usb3-dp-phy
 
   reg:
     maxItems: 1
@@ -62,12 +64,12 @@ properties:
   "#clock-cells":
     const: 1
     description:
-      See include/dt-bindings/dt-bindings/phy/phy-qcom-qmp.h
+      See include/dt-bindings/phy/phy-qcom-qmp.h
 
   "#phy-cells":
     const: 1
     description:
-      See include/dt-bindings/dt-bindings/phy/phy-qcom-qmp.h
+      See include/dt-bindings/phy/phy-qcom-qmp.h
 
   orientation-switch:
     description:
@@ -128,6 +130,8 @@ allOf:
             - qcom,sc8280xp-qmp-usb43dp-phy
             - qcom,sm6350-qmp-usb3-dp-phy
             - qcom,sm8550-qmp-usb3-dp-phy
+            - qcom,sm8650-qmp-usb3-dp-phy
+            - qcom,x1e80100-qmp-usb3-dp-phy
     then:
       required:
         - power-domains
index c95828607ab6bc6b23217ebe5e380c60f2d224a1..b82f7f5731ed4a6879ffbdc1b970fdfe0557f944 100644 (file)
@@ -18,6 +18,8 @@ properties:
       - items:
           - enum:
               - qcom,sdx75-snps-eusb2-phy
+              - qcom,sm8650-snps-eusb2-phy
+              - qcom,x1e80100-snps-eusb2-phy
           - const: qcom,sm8550-snps-eusb2-phy
       - const: qcom,sm8550-snps-eusb2-phy
 
index 45a307d3ce1672b01530371192655a9692ba3593..c11495524dd2672d2d5c3595726f4026e153ead6 100644 (file)
@@ -31,6 +31,7 @@ properties:
               - ti,omap3-padconf
               - ti,omap4-padconf
               - ti,omap5-padconf
+              - ti,j7200-padconf
           - const: pinctrl-single
 
   reg:
index fad0118fd5219c86d8a1342379dc8a9960a746bb..23300606547c5585f5e4384148af15633e785f40 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 24
@@ -95,7 +88,10 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 3d3086ae1ba6946a6d0e2934d6ef8d1ff500cb3a..e571cd64418f279868dc724b2ec41661a6056f15 100644 (file)
@@ -26,13 +26,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 27
@@ -100,7 +93,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 7c3e5e043f078df68f774a06f40b4157666e0f73..ed00fbaec11b05760dbe4885884066de78c85d07 100644 (file)
@@ -22,12 +22,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -100,7 +94,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index e053fbd588b51efabee91573c8f7bddecc6da01e..6f90dbbdbdcce2063913d9fcead5c16ce2f277b2 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 35
@@ -103,7 +96,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index e5e9962b2174fd68b9adc55a01698ee4fcdb53b3..bca903b5da6d01e4aeb64a7a225220b01d32f714 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 33
@@ -97,7 +90,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/pinctrl/qcom,lpass-lpi-common.yaml b/Bindings/pinctrl/qcom,lpass-lpi-common.yaml
new file mode 100644 (file)
index 0000000..3b50457
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,lpass-lpi-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SoC LPASS LPI TLMM Common Properties
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+
+description:
+  Common properties for the Top Level Mode Multiplexer pin controllers in the
+  Low Power Audio SubSystem (LPASS) Low Power Island (LPI) of Qualcomm SoCs.
+
+properties:
+  gpio-controller: true
+
+  "#gpio-cells":
+    description:
+      Specifying the pin number and flags, as defined in
+      include/dt-bindings/gpio/gpio.h
+    const: 2
+
+  gpio-ranges:
+    maxItems: 1
+
+required:
+  - gpio-controller
+  - "#gpio-cells"
+  - gpio-ranges
+
+allOf:
+  - $ref: pinctrl.yaml#
+
+additionalProperties: true
+
+$defs:
+  qcom-tlmm-state:
+    properties:
+      drive-strength:
+        enum: [2, 4, 6, 8, 10, 12, 14, 16]
+        default: 2
+        description:
+          Selects the drive strength for the specified pins, in mA.
+
+      slew-rate:
+        enum: [0, 1, 2, 3]
+        default: 0
+        description: |
+          0: No adjustments
+          1: Higher Slew rate (faster edges)
+          2: Lower Slew rate (slower edges)
+          3: Reserved (No adjustments)
+
+      bias-bus-hold: true
+      bias-pull-down: true
+      bias-pull-up: true
+      bias-disable: true
+      input-enable: true
+      output-high: true
+      output-low: true
+
+    required:
+      - pins
+      - function
+
+    allOf:
+      - $ref: pincfg-node.yaml#
+      - $ref: pinmux-node.yaml#
+
+    additionalProperties: true
+
index 5ece3b9d676b3d49d0efe1b132dc3679766c48d7..bd3cbb44c99a4638e9b9aa57c95c8b3def7171e6 100644 (file)
@@ -25,19 +25,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -110,6 +98,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 5885aee95c98e247f0f1af760f456892a2358b8f..299e0b4b0ab42500f2ba41937a901c3d90e2b713 100644 (file)
@@ -23,18 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  '#interrupt-cells': true
-  gpio-controller: true
-  '#gpio-cells': true
-  gpio-ranges: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -74,6 +62,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index a602bf0d27fbc65f64fb8131a972dfc626cf8f70..68d3fa2105b857cedf4a88923d7ba801a9185227 100644 (file)
@@ -23,12 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-
   gpio-reserved-ranges:
     maxItems: 1
 
@@ -82,7 +76,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index a05971611780947e2c156605a92abeac01e6dbe4..61f5be21f30cc0a550e85199794c228e22e2f38a 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 86
@@ -92,7 +85,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 5095e86fe9a2136a204126bb0050cb5371f79c6a..295dd5fcf4c3d261b3f6139b65caafdc5c093b5e 100644 (file)
@@ -25,19 +25,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -108,6 +96,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 063d004967bbeb3355b4d9153cadac8d18030f10..904af87f9eaff69e29fff946b170cdce56f119ea 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 61
@@ -114,7 +107,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 798aac9e6e31b207a89deaa5ac4e72e7e145d074..8a3a962f6c007379259c0363c4fa5aa2ba4277a1 100644 (file)
@@ -22,12 +22,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
 
 patternProperties:
   "-state$":
@@ -117,7 +112,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 9172b50f7a9825680e7359385bf42f785892b2e8..46618740bd312b975321427e5ffa34811c68e652 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 76
@@ -108,7 +101,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 8a3be65c51edee8ae16f1cd9cf21d828f9190716..840fdaabde12772e830d49e9c1056eb81e94dbe9 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 73
@@ -124,7 +117,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index ca95de0b87a6a19f49a57a308092a29dcd7bc207..d4391c194ff7c66b446cb154c858edf5d82dde41 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 73
@@ -104,7 +97,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 41525ecfa8e3a4d4691e8462163c93b2af70a789..fa90981db40b38d378e42bed0a949a6776acbbcd 100644 (file)
@@ -25,13 +25,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 73
@@ -114,7 +107,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 59d406b609574f4a2c19f20c6e7c2859fddad89b..c5010c175b2386d91f614b6b32fe533cfbf9e1eb 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 75
@@ -133,7 +126,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index bd6d7caf499afb6e1c3026d81c3e69f22285bc99..bcaa231adaf784c8e620cfa1521192710005906d 100644 (file)
@@ -23,13 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 75
@@ -118,7 +111,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 80f960671857042ca4018b6a495822dbb3056c6e..fe717d8d47982408001aad49d714b8e3faa8c501 100644 (file)
@@ -158,34 +158,40 @@ examples:
   - |
     #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 
-    pm8841_mpp: mpps@a000 {
-      compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
-      reg = <0xa000 0>;
-      gpio-controller;
-      #gpio-cells = <2>;
-      gpio-ranges = <&pm8841_mpp 0 0 4>;
-      gpio-line-names = "VDD_PX_BIAS", "WLAN_LED_CTRL",
-              "BT_LED_CTRL", "GPIO-F";
-      interrupt-controller;
-      #interrupt-cells = <2>;
-
-      pinctrl-names = "default";
-      pinctrl-0 = <&pm8841_default>;
-
-      mpp1-state {
-        pins = "mpp1";
-        function = "digital";
-        input-enable;
-        power-source = <PM8841_MPP_S3>;
-      };
-
-      default-state {
-        gpio-pins {
-          pins = "mpp1", "mpp2", "mpp3", "mpp4";
-          function = "digital";
-          input-enable;
-          power-source = <PM8841_MPP_S3>;
+    pmic {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pm8841_mpp: mpps@a000 {
+            compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
+            reg = <0xa000>;
+
+            gpio-controller;
+            #gpio-cells = <2>;
+            gpio-ranges = <&pm8841_mpp 0 0 4>;
+            gpio-line-names = "VDD_PX_BIAS", "WLAN_LED_CTRL",
+                              "BT_LED_CTRL", "GPIO-F";
+            interrupt-controller;
+            #interrupt-cells = <2>;
+
+            pinctrl-names = "default";
+            pinctrl-0 = <&pm8841_default>;
+
+            mpp1-state {
+                pins = "mpp1";
+                function = "digital";
+                input-enable;
+                power-source = <PM8841_MPP_S3>;
+            };
+
+            default-state {
+                gpio-pins {
+                    pins = "mpp1", "mpp2", "mpp3", "mpp4";
+                    function = "digital";
+                    input-enable;
+                    power-source = <PM8841_MPP_S3>;
+                };
+            };
         };
-      };
     };
 ...
index c323f6d495a4495635ad0de9b7353315f28fa86c..e123beb33aef5ed7cafb2be83246f8b83f95f302 100644 (file)
@@ -22,13 +22,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -92,7 +85,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index b1b9cd319e50a3212f38386e39b8275a267ef02a..4009501b3414f4a066482b34897a221d7fdb3f17 100644 (file)
@@ -29,13 +29,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 60
@@ -130,7 +123,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 237cac4f6ce1dfcf1d28c9d9a7dea0669a0c423d..88afeae530c68234506c4e15294c0a3a617e5902 100644 (file)
@@ -23,10 +23,8 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts: true
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
+  interrupts:
+    maxItems: 1
 
   gpio-reserved-ranges:
     minItems: 1
@@ -35,10 +33,6 @@ properties:
   gpio-line-names:
     maxItems: 151
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -101,7 +95,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 2173c5255638bdff31fffcbd8b90dbad8ebf37d5..e9abbf2c0689bc0cd02eda53f109ca3dce398141 100644 (file)
@@ -22,13 +22,8 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts: true
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
+  interrupts:
+    maxItems: 1
 
   gpio-reserved-ranges:
     minItems: 1
@@ -37,12 +32,6 @@ properties:
   gpio-line-names:
     maxItems: 148
 
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -108,6 +97,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 573e459b1c44a1391278facdcf3b655601e0aa65..5606f2136ad10141af7b69a5fb942e484ff93781 100644 (file)
@@ -29,13 +29,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 60
@@ -112,7 +105,7 @@ required:
   - reg
   - reg-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 00c5a00e35fce2e041afd978813b006d8d8d8d88..08801cc4e476ff8088a043a87c84503efa506012 100644 (file)
@@ -20,16 +20,6 @@ properties:
   reg:
     maxItems: 2
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -45,7 +35,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -68,42 +59,14 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-            0: No adjustments
-            1: Higher Slew rate (faster edges)
-            2: Lower Slew rate (slower edges)
-            3: Reserved (No adjustments)
-
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-bus-hold: true
-      bias-disable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 required:
   - compatible
   - reg
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,lpass-lpi-common.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index c8735ab97e407dddb414118d2f282169f82fbed8..5329fe2a439789ca1466577db26f56bc4c779d65 100644 (file)
@@ -23,24 +23,6 @@ properties:
     description: Specifies the TLMM summary IRQ
     maxItems: 1
 
-  interrupt-controller: true
-
-  '#interrupt-cells':
-    description:
-      Specifies the PIN numbers and Flags, as defined in defined in
-      include/dt-bindings/interrupt-controller/irq.h
-    const: 2
-
-  gpio-controller: true
-
-  '#gpio-cells':
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 88
@@ -48,8 +30,6 @@ properties:
   gpio-line-names:
     maxItems: 175
 
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -124,14 +104,8 @@ allOf:
 required:
   - compatible
   - reg
-  - interrupts
-  - interrupt-controller
-  - '#interrupt-cells'
-  - gpio-controller
-  - '#gpio-cells'
-  - gpio-ranges
-
-additionalProperties: false
+
+unevaluatedProperties: false
 
 examples:
   - |
index b086a5184235a67899d5b05e2ebea499e2768626..c122bb849f0f72b31d24cd0c23fdb0963c625247 100644 (file)
@@ -31,20 +31,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  '#interrupt-cells': true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  '#gpio-cells': true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-  - reg-names
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -106,6 +93,13 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+  - reg-names
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index a9167dac9ab58b239c226df894238bbbbb9fa737..240e6d45cc95e989d9b57b4c36319e5c872ea8f1 100644 (file)
@@ -32,16 +32,6 @@ properties:
       - const: core
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -57,7 +47,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -79,48 +70,16 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-          0: No adjustments
-          1: Higher Slew rate (faster edges)
-          2: Lower Slew rate (slower edges)
-          3: Reserved (No adjustments)
-
-      bias-bus-hold: true
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 4bd6d7977d3e873a866e72ac6a388f4a3f2ae9b7..ed344deaf8b9e422d3b210638109948aafd90026 100644 (file)
@@ -25,19 +25,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -108,6 +96,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 508e0633b253e4a8ae12e54334cf7fb5f421f1b6..a00cb43df144b53641fc19f5b7c3669574d9c08e 100644 (file)
@@ -34,10 +34,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 57
@@ -45,10 +41,6 @@ properties:
   gpio-line-names:
     maxItems: 114
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -130,7 +122,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 84a15f77e710a5335f789d0d7fdcb05ecdbfc8ed..b56e717aa28e77449bd19cf5f821129c29f64e31 100644 (file)
@@ -25,23 +25,10 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 75
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -98,6 +85,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index d301881ddfa8e02031ef0cfb329bdfcdea8bda6b..dfe5616b9b858f8031a902f41c74a63c44e93174 100644 (file)
@@ -26,10 +26,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 75
@@ -37,10 +33,6 @@ properties:
   gpio-line-names:
     maxItems: 150
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -110,7 +102,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 67af99dd8f147bfb122ce6b20304bbfbcb0e862f..edbcff92bbf91f8bcfb88cbbd9c613f822169bf9 100644 (file)
@@ -23,12 +23,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-
   gpio-reserved-ranges:
     maxItems: 1
 
@@ -102,7 +96,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 27319782d94be59fae12e8dfb49ec16ef73a271f..a31b638c456d11db7e71809e160640c3f75c8614 100644 (file)
@@ -22,12 +22,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-
   gpio-reserved-ranges:
     maxItems: 1
 
@@ -122,7 +116,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 7cb96aa75b08bd92c335974d82e9586baf4b2d49..cb1d978d02c9a54e91583579553fb265fc94c35a 100644 (file)
@@ -22,10 +22,8 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts: true
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
+  interrupts:
+    maxItems: 1
 
   gpio-reserved-ranges:
     minItems: 1
@@ -34,10 +32,6 @@ properties:
   gpio-line-names:
     maxItems: 133
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -100,7 +94,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/pinctrl/qcom,sm4450-tlmm.yaml b/Bindings/pinctrl/qcom,sm4450-tlmm.yaml
new file mode 100644 (file)
index 0000000..bb08ca5
--- /dev/null
@@ -0,0 +1,151 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sm4450-tlmm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. SM4450 TLMM block
+
+maintainers:
+  - Tengfei Fan <quic_tengfan@quicinc.com>
+
+description:
+  Top Level Mode Multiplexer pin controller in Qualcomm SM4450 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sm4450-pinctrl
+
+  reg:
+    maxItems: 1
+
+  interrupts: true
+  interrupt-controller: true
+  "#interrupt-cells": true
+  gpio-controller: true
+
+  gpio-reserved-ranges:
+    minItems: 1
+    maxItems: 68
+
+  gpio-line-names:
+    maxItems: 136
+
+  "#gpio-cells": true
+  gpio-ranges: true
+  wakeup-parent: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sm4450-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sm4450-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sm4450-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-5])$"
+            - enum: [ sdc2_clk, sdc2_cmd, sdc2_data, ufs_reset ]
+          minItems: 1
+          maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ gpio, atest_char, atest_char0, atest_char1, atest_char2,
+                atest_char3, atest_usb0, atest_usb00, atest_usb01, atest_usb02,
+                atest_usb03, audio_ref, cam_mclk, cci_async, cci_i2c,
+                cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
+                cmu_rng0, cmu_rng1, cmu_rng2, cmu_rng3, coex_uart1, cri_trng,
+                cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
+                dp0_hot, gcc_gp1, gcc_gp2, gcc_gp3, host2wlan_sol, ibi_i3c,
+                jitter_bist, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2,
+                mdp_vsync3, mi2s0_data0, mi2s0_data1, mi2s0_sck, mi2s0_ws,
+                mi2s2_data0, mi2s2_data1, mi2s2_sck, mi2s2_ws, mi2s_mclk0,
+                mi2s_mclk1, nav_gpio0, nav_gpio1, nav_gpio2, pcie0_clk,
+                phase_flag0, phase_flag1, phase_flag10, phase_flag11,
+                phase_flag12, phase_flag13, phase_flag14, phase_flag15,
+                phase_flag16, phase_flag17, phase_flag18, phase_flag19,
+                phase_flag2, phase_flag20, phase_flag21, phase_flag22,
+                phase_flag23, phase_flag24, phase_flag25, phase_flag26,
+                phase_flag27, phase_flag28, phase_flag29, phase_flag3,
+                phase_flag30, phase_flag31, phase_flag4, phase_flag5,
+                phase_flag6, phase_flag7, phase_flag8, phase_flag9,
+                pll_bist, pll_clk, prng_rosc0, prng_rosc1, prng_rosc2,
+                prng_rosc3, qdss_cti, qdss_gpio, qdss_gpio0, qdss_gpio1,
+                qdss_gpio10, qdss_gpio11, qdss_gpio12, qdss_gpio13, qdss_gpio14,
+                qdss_gpio15, qdss_gpio2, qdss_gpio3, qdss_gpio4, qdss_gpio5,
+                qdss_gpio6, qdss_gpio7, qdss_gpio8, qdss_gpio9, qlink0_enable,
+                qlink0_request, qlink0_wmss, qlink1_enable, qlink1_request,
+                qlink1_wmss, qlink2_enable, qlink2_request, qlink2_wmss,
+                qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4, qup0_se5,
+                qup0_se6, qup0_se7, qup1_se0, qup1_se1, qup1_se2, qup1_se3,
+                qup1_se4, qup1_se5, qup1_se6, sd_write, tb_trig, tgu_ch0,
+                tgu_ch1, tgu_ch2, tgu_ch3, tmess_prng0, tmess_prng1,
+                tmess_prng2, tmess_prng3, tsense_pwm1, tsense_pwm2, uim0_clk,
+                uim0_data, uim0_present, uim0_reset, uim1_clk, uim1_data,
+                uim1_present, uim1_reset, usb0_hs, usb0_phy, vfr_0, vfr_1,
+                vsense_trigger ]
+
+        required:
+          - pins
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@f100000 {
+        compatible = "qcom,sm4450-tlmm";
+        reg = <0x0f100000 0x300000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 137>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+        gpio-wo-state {
+            pins = "gpio1";
+            function = "gpio";
+        };
+
+        uart-w-state {
+            rx-pins {
+                pins = "gpio23";
+                function = "qup1_se2";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio22";
+                function = "qup1_se2";
+                bias-disable;
+            };
+        };
+    };
+...
index abac3311fc550725cf28780ad4876526578f6627..f4cf2ce86fcd425b7522918442de25c836bf24f0 100644 (file)
@@ -31,16 +31,6 @@ properties:
     items:
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -56,7 +46,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -75,48 +66,17 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-          0: No adjustments
-          1: Higher Slew rate (faster edges)
-          2: Lower Slew rate (slower edges)
-          3: Reserved (No adjustments)
-
-      bias-bus-hold: true
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
 
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 871df54f69a2eb192fd43a8c19d36e2fe54b4f8e..7f36f9b933330937ef9d7b334b041174f9617ec6 100644 (file)
@@ -29,13 +29,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
   gpio-reserved-ranges: true
-  wakeup-parent: true
 
 patternProperties:
   "-state$":
@@ -97,7 +91,7 @@ required:
   - reg
   - reg-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 8d77707b02b9fef344290b757f3308b5b51bb10e..ddeaeaa9a450abe2ac922a8f81d3ee03ab2b9e7e 100644 (file)
@@ -30,20 +30,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-  - reg-names
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -105,6 +92,13 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+  - reg-names
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 27af379cf791aa0b9fab6921098a3e5ee76850ea..a4771f87d93645549d9cfbb8b39315065d0b8cf6 100644 (file)
@@ -26,10 +26,6 @@ properties:
     minItems: 9
     maxItems: 9
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 78
@@ -37,16 +33,6 @@ properties:
   gpio-line-names:
     maxItems: 156
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -112,6 +98,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 6e02ba24825f111bdee19a16123d1207921462b2..047f82863f9bbfdfcd870a35656d0b56e6c018ba 100644 (file)
@@ -25,19 +25,7 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
   gpio-reserved-ranges: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
 
 patternProperties:
   "-state$":
@@ -113,6 +101,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index ede0f3acad9c4f046728b179a2ce5fda63233a78..7f23f939ad3257bca34ef6d6c7d599fef2cbc1f8 100644 (file)
@@ -32,13 +32,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 60
@@ -111,7 +104,7 @@ required:
   - reg
   - reg-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index c6439626464ef9a5bb11a1c106f6e0098a4d0c87..bdb7ed4be02675e85561e35423adb6a1ec16dbc9 100644 (file)
@@ -30,13 +30,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 88
@@ -113,7 +106,7 @@ required:
   - reg
   - reg-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 4b4be7efc150ac90bcb8a8f55fdb222f5085498b..750c996c10a713d9a78819f331d74cd24712ae11 100644 (file)
@@ -30,16 +30,6 @@ properties:
       - const: core
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -55,7 +45,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -78,48 +69,16 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-            0: No adjustments
-            1: Higher Slew rate (faster edges)
-            2: Lower Slew rate (slower edges)
-            3: Reserved (No adjustments)
-
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-bus-hold: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 021c5470852469f606bae49dcb31beb42927d3e7..b5d04347c064d598d8600333f415fa412255cd2b 100644 (file)
@@ -28,13 +28,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 90
@@ -106,7 +99,7 @@ required:
   - reg
   - reg-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 2e65ae08dd211222997eaca8bcdbc89c2c045384..9d782f910b318c6e739c082e6cdf9d5176497560 100644 (file)
@@ -33,16 +33,6 @@ properties:
       - const: core
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -58,7 +48,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -81,48 +72,16 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-          0: No adjustments
-          1: Higher Slew rate (faster edges)
-          2: Lower Slew rate (slower edges)
-          3: Reserved (No adjustments)
-
-      bias-bus-hold: true
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 6e8f41ff0a76bebdeb4eac05ddd0ab3be5d7b703..ec5e09611d810ca13b8cb446d97f5f4072467c8e 100644 (file)
@@ -25,10 +25,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 102
@@ -36,16 +32,6 @@ properties:
   gpio-line-names:
     maxItems: 203
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -108,6 +94,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index 1eefa9aa6a86cc1598951e4d63a4005a4522940d..e7565592da86245521be0994179781c0d250cd16 100644 (file)
@@ -32,16 +32,6 @@ properties:
       - const: core
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -57,7 +47,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -81,48 +72,16 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-          0: No adjustments
-          1: Higher Slew rate (faster edges)
-          2: Lower Slew rate (slower edges)
-          3: Reserved (No adjustments)
-
-      bias-bus-hold: true
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 5163fe3f536520890530d9bbbfa2c8858e4e3b92..16fd2c5e233931565c40c905f120dfd6d94f69d6 100644 (file)
@@ -25,10 +25,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
-
   gpio-reserved-ranges:
     minItems: 1
     maxItems: 105
@@ -36,16 +32,6 @@ properties:
   gpio-line-names:
     maxItems: 210
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
-required:
-  - compatible
-  - reg
-
-additionalProperties: false
-
 patternProperties:
   "-state$":
     oneOf:
@@ -107,6 +93,12 @@ $defs:
     required:
       - pins
 
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
index ef974324684987480ec819da232d083f64b7a46f..bf4a72facae1d5568f642c6204d7a0a5ec6001e5 100644 (file)
@@ -16,7 +16,11 @@ description:
 
 properties:
   compatible:
-    const: qcom,sm8550-lpass-lpi-pinctrl
+    oneOf:
+      - const: qcom,sm8550-lpass-lpi-pinctrl
+      - items:
+          - const: qcom,x1e80100-lpass-lpi-pinctrl
+          - const: qcom,sm8550-lpass-lpi-pinctrl
 
   reg:
     items:
@@ -33,16 +37,6 @@ properties:
       - const: core
       - const: audio
 
-  gpio-controller: true
-
-  "#gpio-cells":
-    description: Specifying the pin number and flags, as defined in
-      include/dt-bindings/gpio/gpio.h
-    const: 2
-
-  gpio-ranges:
-    maxItems: 1
-
 patternProperties:
   "-state$":
     oneOf:
@@ -58,7 +52,8 @@ $defs:
     description:
       Pinctrl node's client devices use subnodes for desired pin configuration.
       Client device subnodes use below standard properties.
-    $ref: /schemas/pinctrl/pincfg-node.yaml
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
 
     properties:
       pins:
@@ -81,48 +76,16 @@ $defs:
           Specify the alternative function to be configured for the specified
           pins.
 
-      drive-strength:
-        enum: [2, 4, 6, 8, 10, 12, 14, 16]
-        default: 2
-        description:
-          Selects the drive strength for the specified pins, in mA.
-
-      slew-rate:
-        enum: [0, 1, 2, 3]
-        default: 0
-        description: |
-          0: No adjustments
-          1: Higher Slew rate (faster edges)
-          2: Lower Slew rate (slower edges)
-          3: Reserved (No adjustments)
-
-      bias-bus-hold: true
-      bias-pull-down: true
-      bias-pull-up: true
-      bias-disable: true
-      input-enable: true
-      output-high: true
-      output-low: true
-
-    required:
-      - pins
-      - function
-
-    additionalProperties: false
-
 allOf:
-  - $ref: pinctrl.yaml#
+  - $ref: qcom,lpass-lpi-common.yaml#
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - gpio-controller
-  - "#gpio-cells"
-  - gpio-ranges
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index f789c7753a92cede9652116e455935f2c346f951..c2ae79df424fda1be7f8be2b2c3d304df9040c60 100644 (file)
@@ -22,10 +22,8 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts: true
-  interrupt-controller: true
-  "#interrupt-cells": true
-  gpio-controller: true
+  interrupts:
+    maxItems: 1
 
   gpio-reserved-ranges:
     minItems: 1
@@ -34,10 +32,6 @@ properties:
   gpio-line-names:
     maxItems: 210
 
-  "#gpio-cells": true
-  gpio-ranges: true
-  wakeup-parent: true
-
 patternProperties:
   "-state$":
     oneOf:
@@ -117,7 +111,7 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml b/Bindings/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml
new file mode 100644 (file)
index 0000000..db72143
--- /dev/null
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM8650 SoC LPASS LPI TLMM
+
+maintainers:
+  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description:
+  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
+  (LPASS) Low Power Island (LPI) of Qualcomm SM8650 SoC.
+
+properties:
+  compatible:
+    const: qcom,sm8650-lpass-lpi-pinctrl
+
+  reg:
+    items:
+      - description: LPASS LPI TLMM Control and Status registers
+
+  clocks:
+    items:
+      - description: LPASS Core voting clock
+      - description: LPASS Audio voting clock
+
+  clock-names:
+    items:
+      - const: core
+      - const: audio
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sm8650-lpass-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sm8650-lpass-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sm8650-lpass-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
+
+      function:
+        enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
+                dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
+                ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
+                i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
+                i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk,
+                i2s4_data, i2s4_ws, qca_swr_clk, qca_swr_data, slimbus_clk,
+                slimbus_data, swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data,
+                wsa_swr_clk, wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ]
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+
+allOf:
+  - $ref: qcom,lpass-lpi-common.yaml#
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+
+    lpass_tlmm: pinctrl@6e80000 {
+        compatible = "qcom,sm8650-lpass-lpi-pinctrl";
+        reg = <0x06e80000 0x20000>;
+
+        clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+        clock-names = "core", "audio";
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&lpass_tlmm 0 0 23>;
+
+        tx-swr-sleep-clk-state {
+            pins = "gpio0";
+            function = "swr_tx_clk";
+            drive-strength = <2>;
+            bias-pull-down;
+        };
+    };
diff --git a/Bindings/pinctrl/qcom,sm8650-tlmm.yaml b/Bindings/pinctrl/qcom,sm8650-tlmm.yaml
new file mode 100644 (file)
index 0000000..c0a06ab
--- /dev/null
@@ -0,0 +1,141 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sm8650-tlmm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. SM8650 TLMM block
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+description:
+  Top Level Mode Multiplexer pin controller in Qualcomm SM8650 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sm8650-tlmm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges:
+    minItems: 1
+    maxItems: 105
+
+  gpio-line-names:
+    maxItems: 210
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sm8650-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sm8650-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sm8650-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-9][0-9]|20[0-9])$"
+            - enum: [ ufs_reset, sdc2_clk, sdc2_cmd, sdc2_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ gpio, aoss_cti, atest_char, atest_usb, audio_ext_mclk0,
+                audio_ext_mclk1, audio_ref_clk, cam_aon_mclk2, cam_aon_mclk4,
+                cam_mclk, cci_async_in, cci_i2c_scl, cci_i2c_sda, cci_timer,
+                cmu_rng, coex_uart1_rx, coex_uart1_tx, coex_uart2_rx,
+                coex_uart2_tx, cri_trng, dbg_out_clk, ddr_bist_complete,
+                ddr_bist_fail, ddr_bist_start, ddr_bist_stop, ddr_pxi0,
+                ddr_pxi1, ddr_pxi2, ddr_pxi3, do_not, dp_hot, gcc_gp1,
+                gcc_gp2, gcc_gp3, gnss_adc0, gnss_adc1, i2chub0_se0,
+                i2chub0_se1, i2chub0_se2, i2chub0_se3, i2chub0_se4,
+                i2chub0_se5, i2chub0_se6, i2chub0_se7, i2chub0_se8,
+                i2chub0_se9, i2s0_data0, i2s0_data1, i2s0_sck, i2s0_ws,
+                i2s1_data0, i2s1_data1, i2s1_sck, i2s1_ws, ibi_i3c,
+                jitter_bist, mdp_vsync, mdp_vsync0_out, mdp_vsync1_out,
+                mdp_vsync2_out, mdp_vsync3_out, mdp_vsync_e, nav_gpio0,
+                nav_gpio1, nav_gpio2, nav_gpio3, pcie0_clk_req_n,
+                pcie1_clk_req_n, phase_flag, pll_bist_sync, pll_clk_aux,
+                prng_rosc0, prng_rosc1, prng_rosc2, prng_rosc3, qdss_cti,
+                qdss_gpio, qlink_big_enable, qlink_big_request,
+                qlink_little_enable, qlink_little_request, qlink_wmss,
+                qspi0, qspi1, qspi2, qspi3, qspi_clk, qspi_cs, qup1_se0,
+                qup1_se1, qup1_se2, qup1_se3, qup1_se4, qup1_se5, qup1_se6,
+                qup1_se7, qup2_se0, qup2_se1, qup2_se2, qup2_se3, qup2_se4,
+                qup2_se5, qup2_se6, qup2_se7, sd_write_protect, sdc40, sdc41,
+                sdc42, sdc43, sdc4_clk, sdc4_cmd, tb_trig_sdc2, tb_trig_sdc4,
+                tgu_ch0_trigout, tgu_ch1_trigout, tgu_ch2_trigout,
+                tgu_ch3_trigout, tmess_prng0, tmess_prng1, tmess_prng2,
+                tmess_prng3, tsense_pwm1, tsense_pwm2, tsense_pwm3, uim0_clk,
+                uim0_data, uim0_present, uim0_reset, uim1_clk, uim1_data,
+                uim1_present, uim1_reset, usb1_hs, usb_phy, vfr_0, vfr_1,
+                vsense_trigger_mirnat ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@f100000 {
+        compatible = "qcom,sm8650-tlmm";
+        reg = <0x0f100000 0x300000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 211>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+        gpio-wo-state {
+            pins = "gpio1";
+            function = "gpio";
+        };
+
+        uart-w-state {
+            rx-pins {
+                pins = "gpio60";
+                function = "qup1_se7";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio61";
+                function = "qup1_se7";
+                bias-disable;
+            };
+        };
+    };
+...
diff --git a/Bindings/pinctrl/qcom,x1e80100-tlmm.yaml b/Bindings/pinctrl/qcom,x1e80100-tlmm.yaml
new file mode 100644 (file)
index 0000000..a1333e0
--- /dev/null
@@ -0,0 +1,137 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,x1e80100-tlmm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. X1E80100 TLMM block
+
+maintainers:
+  - Rajendra Nayak <quic_rjendra@quicinc.com>
+
+description:
+  Top Level Mode Multiplexer pin controller in Qualcomm X1E80100 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,x1e80100-tlmm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges:
+    minItems: 1
+    maxItems: 119
+
+  gpio-line-names:
+    maxItems: 238
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-x1e80100-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-x1e80100-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-x1e80100-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-2][0-9]|23[0-7])$"
+            - enum: [ ufs_reset, sdc2_clk, sdc2_cmd, sdc2_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ aon_cci, aoss_cti, atest_char, atest_char0,
+                atest_char1, atest_char2, atest_char3, atest_usb,
+                audio_ext, audio_ref, cam_aon, cam_mclk, cci_async,
+                cci_i2c, cci_timer0, cci_timer1, cci_timer2, cci_timer3,
+                cci_timer4, cmu_rng0, cmu_rng1, cmu_rng2, cmu_rng3,
+                cri_trng, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
+                ddr_pxi2, ddr_pxi3, ddr_pxi4, ddr_pxi5, ddr_pxi6, ddr_pxi7,
+                edp0_hot, edp0_lcd, edp1_hot, edp1_lcd, eusb0_ac, eusb1_ac,
+                eusb2_ac, eusb3_ac, eusb5_ac, eusb6_ac, gcc_gp1, gcc_gp2,
+                gcc_gp3, gpio, i2s0_data0, i2s0_data1, i2s0_sck, i2s0_ws, i2s1_data0,
+                i2s1_data1, i2s1_sck, i2s1_ws, ibi_i3c, jitter_bist, mdp_vsync0,
+                mdp_vsync1, mdp_vsync2, mdp_vsync3, mdp_vsync4, mdp_vsync5,
+                mdp_vsync6, mdp_vsync7, mdp_vsync8, pcie3_clk, pcie4_clk,
+                pcie5_clk, pcie6a_clk, pcie6b_clk, phase_flag, pll_bist, pll_clk,
+                prng_rosc0, prng_rosc1, prng_rosc2, prng_rosc3, qdss_cti,
+                qdss_gpio, qspi00, qspi01, qspi02, qspi03, qspi0_clk, qspi0_cs0,
+                qspi0_cs1, qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4,
+                qup0_se5, qup0_se6, qup0_se7, qup1_se0, qup1_se1, qup1_se2, qup1_se3,
+                qup1_se4, qup1_se5, qup1_se6, qup1_se7, qup2_se0, qup2_se1, qup2_se2,
+                qup2_se3, qup2_se4, qup2_se5, qup2_se6, qup2_se7, sd_write, sdc4_clk,
+                sdc4_cmd, sdc4_data0, sdc4_data1, sdc4_data2, sdc4_data3, sys_throttle,
+                tb_trig, tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tgu_ch4, tgu_ch5,
+                tgu_ch6, tgu_ch7, tmess_prng0, tmess_prng1, tmess_prng2, tmess_prng3,
+                tsense_pwm1, tsense_pwm2, sense_pwm3, tsense_pwm4, usb0_dp, usb0_phy,
+                usb0_sbrx, usb0_sbtx, usb1_dp, usb1_phy, usb1_sbrx, usb1_sbtx,
+                usb2_dp, usb2_phy, usb2_sbrx, usb2_sbtx, vsense_trigger ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@f100000 {
+        compatible = "qcom,x1e80100-tlmm";
+        reg = <0x0f100000 0xf00000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 239>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+        gpio-wo-state {
+            pins = "gpio1";
+            function = "gpio";
+        };
+
+        uart-w-state {
+            rx-pins {
+                pins = "gpio26";
+                function = "qup2_se7";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio27";
+                function = "qup2_se7";
+                bias-disable;
+            };
+        };
+    };
+...
index 8271e7b2c162a33e8941d9c41ad8ce8c3b9007c2..8b8e4e1a000f62f826c152509a25b65623d0ea07 100644 (file)
@@ -20,7 +20,7 @@ description:
 
 properties:
   compatible:
-    const: "renesas,r7s9210-pinctrl" # RZ/A2M
+    const: renesas,r7s9210-pinctrl # RZ/A2M
 
   reg:
     maxItems: 1
index b5ca40d0e251dc17ac2ea0f6f392b80db736ea22..d476de82e5c3f487b0275d1f2d8d8b5a79a6a116 100644 (file)
@@ -185,17 +185,17 @@ examples:
                     sd1_mux {
                             pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>, /* CD */
                                      <RZG2L_PORT_PINMUX(19, 1, 1)>; /* WP */
-                            power-source  = <3300>;
+                            power-source = <3300>;
                     };
 
                     sd1_data {
                             pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
-                            power-source  = <3300>;
+                            power-source = <3300>;
                     };
 
                     sd1_ctrl {
                             pins = "SD1_CLK", "SD1_CMD";
-                            power-source  = <3300>;
+                            power-source = <3300>;
                     };
             };
     };
index 1de91a51234df4908625264615788d0d316f76fc..4dfb49b0e07f733c16a647ed6defebec75cf1ac2 100644 (file)
@@ -28,15 +28,27 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - samsung,s3c2410-wakeup-eint
-      - samsung,s3c2412-wakeup-eint
-      - samsung,s3c64xx-wakeup-eint
-      - samsung,s5pv210-wakeup-eint
-      - samsung,exynos4210-wakeup-eint
-      - samsung,exynos7-wakeup-eint
-      - samsung,exynos850-wakeup-eint
-      - samsung,exynosautov9-wakeup-eint
+    oneOf:
+      - enum:
+          - samsung,s3c2410-wakeup-eint
+          - samsung,s3c2412-wakeup-eint
+          - samsung,s3c64xx-wakeup-eint
+          - samsung,s5pv210-wakeup-eint
+          - samsung,exynos4210-wakeup-eint
+          - samsung,exynos7-wakeup-eint
+          - samsung,exynosautov920-wakeup-eint
+      - items:
+          - enum:
+              - samsung,exynos5433-wakeup-eint
+              - samsung,exynos7885-wakeup-eint
+              - samsung,exynos850-wakeup-eint
+          - const: samsung,exynos7-wakeup-eint
+      - items:
+          - enum:
+              - google,gs101-wakeup-eint
+              - samsung,exynosautov9-wakeup-eint
+          - const: samsung,exynos850-wakeup-eint
+          - const: samsung,exynos7-wakeup-eint
 
   interrupts:
     description:
@@ -79,11 +91,14 @@ allOf:
   - if:
       properties:
         compatible:
-          contains:
-            enum:
-              - samsung,s5pv210-wakeup-eint
-              - samsung,exynos4210-wakeup-eint
-              - samsung,exynos7-wakeup-eint
+          # Match without "contains", to skip newer variants which are still
+          # compatible with samsung,exynos7-wakeup-eint
+          enum:
+            - samsung,s5pv210-wakeup-eint
+            - samsung,exynos4210-wakeup-eint
+            - samsung,exynos5433-wakeup-eint
+            - samsung,exynos7-wakeup-eint
+            - samsung,exynos7885-wakeup-eint
     then:
       properties:
         interrupts:
@@ -98,7 +113,7 @@ allOf:
           contains:
             enum:
               - samsung,exynos850-wakeup-eint
-              - samsung,exynosautov9-wakeup-eint
+              - samsung,exynosautov920-wakeup-eint
     then:
       properties:
         interrupts: false
index 26614621774a5d822ce21d977aaa2876f3a2a983..118549c25976570c760c9d5059735e9667ff5135 100644 (file)
@@ -35,6 +35,7 @@ properties:
 
   compatible:
     enum:
+      - google,gs101-pinctrl
       - samsung,s3c2412-pinctrl
       - samsung,s3c2416-pinctrl
       - samsung,s3c2440-pinctrl
@@ -53,6 +54,7 @@ properties:
       - samsung,exynos7885-pinctrl
       - samsung,exynos850-pinctrl
       - samsung,exynosautov9-pinctrl
+      - samsung,exynosautov920-pinctrl
       - tesla,fsd-pinctrl
 
   interrupts:
@@ -313,7 +315,8 @@ examples:
         pinctrl-0 = <&initial_alive>;
 
         wakeup-interrupt-controller {
-            compatible = "samsung,exynos7-wakeup-eint";
+            compatible = "samsung,exynos5433-wakeup-eint",
+                         "samsung,exynos7-wakeup-eint";
             interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
         };
 
index b85f9e36ce4b77fb084d648e56d96dac67bece9e..d2676f92ef5bb8999d5932271c5f764d3ae3bfba 100644 (file)
@@ -39,7 +39,7 @@ properties:
       phandle to the SLCR.
 
 patternProperties:
-  '^(.*-)?(default|gpio)$':
+  '^(.*-)?(default|gpio-grp)$':
     type: object
     patternProperties:
       '^mux':
index 01b6f2b578437b93118a8d06bc107e958d3b012a..f13d315b5d5e8ed98513fd85bef314b7b66b80d2 100644 (file)
@@ -31,7 +31,7 @@ properties:
     const: xlnx,zynqmp-pinctrl
 
 patternProperties:
-  '^(.*-)?(default|gpio)$':
+  '^(.*-)?(default|gpio-grp)$':
     type: object
     patternProperties:
       '^mux':
index 407b7cfec783cdc5b7c27d33d027e4bef6db3a44..7a0f1a4008681508bce24769fde1ece1489a816e 100644 (file)
@@ -20,6 +20,7 @@ properties:
   compatible:
     items:
       - enum:
+          - fsl,imx8dl-scu-pd
           - fsl,imx8qm-scu-pd
           - fsl,imx8qxp-scu-pd
       - const: fsl,scu-pd
index da9c5846f4e11740e51f04912bdb090fd9782711..2ff246cf8b81dd8d1148466ab23529771f925c72 100644 (file)
@@ -39,7 +39,6 @@ properties:
           - qcom,sc7280-rpmhpd
           - qcom,sc8180x-rpmhpd
           - qcom,sc8280xp-rpmhpd
-          - qcom,sc8380xp-rpmhpd
           - qcom,sdm660-rpmpd
           - qcom,sdm670-rpmhpd
           - qcom,sdm845-rpmhpd
@@ -57,6 +56,7 @@ properties:
           - qcom,sm8450-rpmhpd
           - qcom,sm8550-rpmhpd
           - qcom,sm8650-rpmhpd
+          - qcom,x1e80100-rpmhpd
       - items:
           - enum:
               - qcom,msm8937-rpmpd
index 14a262bcbf7cd21ebf62ee02f738bf82cbde80e1..627f8a6078c299e32e4bc7597509a6ef52d119d7 100644 (file)
@@ -28,17 +28,15 @@ properties:
     items:
       - const: reboot-mode
 
-patternProperties:
-  "^mode-.+":
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: Vendor-specific mode value written to the mode register
+allOf:
+  - $ref: reboot-mode.yaml#
 
 required:
   - compatible
   - nvmem-cells
   - nvmem-cell-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 5e460128b0d10911a541c959a9581efcb8b4d393..fc8105a7b9b268df5cb08ad32cde26c50ea955ce 100644 (file)
@@ -111,21 +111,24 @@ examples:
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/input/linux-event-codes.h>
    #include <dt-bindings/spmi/spmi.h>
-   spmi_bus: spmi@c440000 {
+
+   spmi@c440000 {
      reg = <0x0c440000 0x1100>;
      #address-cells = <2>;
      #size-cells = <0>;
-     pmk8350: pmic@0 {
+
+     pmic@0 {
        reg = <0x0 SPMI_USID>;
        #address-cells = <1>;
        #size-cells = <0>;
-       pmk8350_pon: pon_hlos@1300 {
-         reg = <0x1300>;
+
+       pon@800 {
          compatible = "qcom,pm8998-pon";
+         reg = <0x800>;
 
          pwrkey {
             compatible = "qcom,pm8941-pwrkey";
-            interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
+            interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
             debounce = <15625>;
             bias-pull-up;
             linux,code = <KEY_POWER>;
index 9b1ffceefe3dec86250dc235f92545bb123ea3cf..b6acff199cdecea08c1243ed5e8ad71240d65e9a 100644 (file)
@@ -29,12 +29,10 @@ properties:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: Offset in the register map for the mode register (in bytes)
 
-patternProperties:
-  "^mode-.+":
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: Vendor-specific mode value written to the mode register
+allOf:
+  - $ref: reboot-mode.yaml#
 
-additionalProperties: false
+unevaluatedProperties: false
 
 required:
   - compatible
index 45792e216981a99de457cc99ea2d8f2dfd130136..799831636194f50ffdb139bd146d8905802bd474 100644 (file)
@@ -57,7 +57,7 @@ examples:
 
     firmware {
       zynqmp-firmware {
-        zynqmp-power {
+        power-management {
           compatible = "xlnx,zynqmp-power";
           interrupts = <0 35 4>;
         };
@@ -70,7 +70,7 @@ examples:
 
     firmware {
       zynqmp-firmware {
-        zynqmp-power {
+        power-management {
           compatible = "xlnx,zynqmp-power";
           interrupt-parent = <&gic>;
           interrupts = <0 35 4>;
index d3ebc9de8c0b49734cb5ce2b138a2d4b67bed7f9..131b7e57d22f46d28a9501c5641fd3c03b7e6ca0 100644 (file)
@@ -20,6 +20,7 @@ properties:
       - ti,bq24192
       - ti,bq24192i
       - ti,bq24196
+      - ti,bq24296
 
   reg:
     maxItems: 1
index 07e38be39f1bc3608135206a44ca1491f33dc221..89f9603499b46024bb6301917a347d2dd8f1062e 100644 (file)
@@ -79,10 +79,10 @@ examples:
         interrupt-parent = <&gpio1>;
         interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
 
-        richtek,output-charge-current      = <500000>;
-        richtek,end-of-charge-percentage    = <10>;
-        richtek,battery-regulation-voltage  = <4200000>;
-        richtek,boost-output-voltage       = <5050000>;
+        richtek,output-charge-current = <500000>;
+        richtek,end-of-charge-percentage = <10>;
+        richtek,battery-regulation-voltage = <4200000>;
+        richtek,boost-output-voltage = <5050000>;
 
         richtek,min-input-voltage-regulation = <4500000>;
         richtek,avg-input-current-regulation = <500000>;
index 697333a56d5e228615f581ef74dbfc66535d03d0..75bc20b95688f6b7ab74579b8a859b8cdbc2a00c 100644 (file)
@@ -3,16 +3,20 @@ Specifying wakeup capability for devices
 
 Any device nodes
 ----------------
-Nodes that describe devices which has wakeup capability must contain an
+Nodes that describe devices which have wakeup capability may contain a
 "wakeup-source" boolean property.
 
-Also, if device is marked as a wakeup source, then all the primary
-interrupt(s) can be used as wakeup interrupt(s).
+If the device is marked as a wakeup-source, interrupt wake capability depends
+on the device specific "interrupt-names" property. If no interrupts are labeled
+as wake capable, then it is up to the device to determine which interrupts can
+wake the system.
 
-However if the devices have dedicated interrupt as the wakeup source
-then they need to specify/identify the same using device specific
-interrupt name. In such cases only that interrupt can be used as wakeup
-interrupt.
+However if a device has a dedicated interrupt as the wakeup source, then it
+needs to specify/identify it using a device specific interrupt name. In such
+cases only that interrupt can be used as a wakeup interrupt.
+
+While various legacy interrupt names exist, new devices should use "wakeup" as
+the canonical interrupt name.
 
 List of legacy properties and respective binding document
 ---------------------------------------------------------
index 153e146df7d4b24af4de004369f372585b9d93ff..afcdeed4e88af625ea4f0f371cc11ffdbe824859 100644 (file)
@@ -8,7 +8,6 @@ title: MediaTek DISP_PWM Controller
 
 maintainers:
   - Jitao Shi <jitao.shi@mediatek.com>
-  - Xinlei Lee <xinlei.lee@mediatek.com>
 
 allOf:
   - $ref: pwm.yaml#
diff --git a/Bindings/pwm/pwm-omap-dmtimer.txt b/Bindings/pwm/pwm-omap-dmtimer.txt
deleted file mode 100644 (file)
index 25ecfe1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-* OMAP PWM for dual-mode timers
-
-Required properties:
-- compatible: Shall contain "ti,omap-dmtimer-pwm".
-- ti,timers: phandle to PWM capable OMAP timer. See timer/ti,timer-dm.yaml for info
-  about these timers.
-- #pwm-cells: Should be 3. See pwm.yaml in this directory for a description of
-  the cells format.
-
-Optional properties:
-- ti,prescaler: Should be a value between 0 and 7, see the timers datasheet
-- ti,clock-source: Set dmtimer parent clock, values between 0 and 2:
-  - 0x00 - high-frequency system clock (timer_sys_ck)
-  - 0x01 - 32-kHz always-on clock (timer_32k_ck)
-  - 0x02 - external clock (timer_ext_ck, OMAP2 only)
-
-Example:
-       pwm9: dmtimer-pwm@9 {
-               compatible = "ti,omap-dmtimer-pwm";
-               ti,timers = <&timer9>;
-               #pwm-cells = <3>;
-       };
index 2162f661ed5a8d2a09ef4eae127e08121f7e41c7..17a2b927af3370f832aa56bf05dce6df4aa40e46 100644 (file)
@@ -29,7 +29,11 @@ properties:
           - samsung,exynos4210-pwm          # 32-bit, Exynos
       - items:
           - enum:
+              - samsung,exynos5433-pwm
+              - samsung,exynos7-pwm
               - samsung,exynosautov9-pwm
+              - samsung,exynosautov920-pwm
+              - tesla,fsd-pwm
           - const: samsung,exynos4210-pwm
 
   reg:
diff --git a/Bindings/pwm/ti,omap-dmtimer-pwm.yaml b/Bindings/pwm/ti,omap-dmtimer-pwm.yaml
new file mode 100644 (file)
index 0000000..1e8e094
--- /dev/null
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/ti,omap-dmtimer-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI dual mode timer PWM controller
+
+maintainers:
+  - Tony Lindgren <tony@atomide.com>
+
+description:
+  TI dual mode timer instances have an IO pin for PWM capability
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    const: ti,omap-dmtimer-pwm
+
+  "#pwm-cells":
+    const: 3
+
+  ti,timers:
+    description: Timer instance phandle for the PWM
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  ti,prescaler:
+    description: |
+      Legacy clock prescaler for timer. The timer counter is prescaled
+      with 2^n where n is the prescaler.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
+    deprecated: true
+
+  ti,clock-source:
+    description: |
+      Legacy clock for timer, please use assigned-clocks instead.
+      0x00 - high-frequency system clock (timer_sys_ck)
+      0x01 - 32-kHz always-on clock (timer_32k_ck)
+      0x02 - external clock (timer_ext_ck, OMAP2 only)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 0, 1, 2 ]
+    deprecated: true
+
+required:
+  - compatible
+  - ti,timers
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pwm9: pwm {
+      compatible = "ti,omap-dmtimer-pwm";
+      ti,timers = <&timer9>;
+      #pwm-cells = <3>;
+    };
index ce7751b9129ce7e7903ac63af6392519f902165c..9ff9abf2691a5041b5b8b998fe440a357c15e966 100644 (file)
@@ -105,6 +105,8 @@ properties:
     description:
       Interrupt signaling a critical under-voltage event.
 
+  system-critical-regulator: true
+
 required:
   - compatible
   - regulator-name
index 0221397eb51ec55d1dfeb7ac3c73d09bf008f314..f825ee9efd810515ff904937b33130b9e2d077b8 100644 (file)
@@ -62,8 +62,8 @@ examples:
              regulator-name = "buck1";
              regulator-min-microvolt = <600000>;
              regulator-max-microvolt = <2187500>;
-             regulator-min-microamp  = <3800000>;
-             regulator-max-microamp  = <6800000>;
+             regulator-min-microamp = <3800000>;
+             regulator-max-microamp = <6800000>;
              regulator-boot-on;
             };
 
index 6de5b027f990389b9cf734d67245e5efdf02487b..0d34af98403f84f9625175da62f8e34e6b75e4af 100644 (file)
@@ -98,8 +98,8 @@ examples:
              regulator-name = "buck1";
              regulator-min-microvolt = <400000>;
              regulator-max-microvolt = <3587500>;
-             regulator-min-microamp  = <460000>;
-             regulator-max-microamp  = <7600000>;
+             regulator-min-microamp = <460000>;
+             regulator-max-microamp = <7600000>;
              regulator-boot-on;
              mps,buck-ovp-disable;
              mps,buck-phase-delay = /bits/ 8 <2>;
index acd37f28ef53fc12e8eb7921760a57b82f10d9be..27c6d5152413fccdb61850c87caf5d721df0fd53 100644 (file)
@@ -42,6 +42,7 @@ description: |
       For PM7325, smps1 - smps8, ldo1 - ldo19
       For PM8005, smps1 - smps4
       For PM8009, smps1 - smps2, ldo1 - ldo7
+      For PM8010, ldo1 - ldo7
       For PM8150, smps1 - smps10, ldo1 - ldo18
       For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
       For PM8350, smps1 - smps12, ldo1 - ldo10
@@ -68,6 +69,7 @@ properties:
       - qcom,pm8005-rpmh-regulators
       - qcom,pm8009-rpmh-regulators
       - qcom,pm8009-1-rpmh-regulators
+      - qcom,pm8010-rpmh-regulators
       - qcom,pm8150-rpmh-regulators
       - qcom,pm8150l-rpmh-regulators
       - qcom,pm8350-rpmh-regulators
@@ -238,6 +240,18 @@ allOf:
         "^vdd-l[1-47]-supply$": true
         "^vdd-s[1-2]-supply$": true
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,pm8010-rpmh-regulators
+    then:
+      properties:
+        vdd-l1-l2-supply: true
+        vdd-l3-l4-supply: true
+      patternProperties:
+        "^vdd-l[5-7]-supply$": true
+
   - if:
       properties:
         compatible:
index 9ea8ac0786acce29b146ad1cf96d49f38bb31560..f2fd2df68a9ed9f995f4c736d9045a56b118eb97 100644 (file)
@@ -47,6 +47,9 @@ description:
   For pm8916, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
   l12, l13, l14, l15, l16, l17, l18
 
+  For pm8937, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10,
+  l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23
+
   For pm8941, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
   l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
   lvs3, 5vs1, 5vs2
@@ -92,6 +95,7 @@ properties:
       - qcom,rpm-pm8841-regulators
       - qcom,rpm-pm8909-regulators
       - qcom,rpm-pm8916-regulators
+      - qcom,rpm-pm8937-regulators
       - qcom,rpm-pm8941-regulators
       - qcom,rpm-pm8950-regulators
       - qcom,rpm-pm8953-regulators
index 7a1b7d2abbd4540a794d396fa327ba6aa50a6ab4..aea849e8eadf122ebd5618aedb9ff074b5fab135 100644 (file)
@@ -22,6 +22,7 @@ properties:
       - qcom,pm8841-regulators
       - qcom,pm8909-regulators
       - qcom,pm8916-regulators
+      - qcom,pm8937-regulators
       - qcom,pm8941-regulators
       - qcom,pm8950-regulators
       - qcom,pm8994-regulators
@@ -291,6 +292,24 @@ allOf:
       patternProperties:
         "^vdd_s[1-3]-supply$": true
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,pm8937-regulators
+    then:
+      properties:
+        vdd_l1_l19-supply: true
+        vdd_l20_l21-supply: true
+        vdd_l2_l23-supply: true
+        vdd_l3-supply: true
+        vdd_l4_l5_l6_l7_l16-supply: true
+        vdd_l8_l11_l12_l17_l22-supply: true
+        vdd_l9_l10_l13_l14_l15_l18-supply: true
+      patternProperties:
+        "^vdd_s[1-6]-supply$": true
+
   - if:
       properties:
         compatible:
index 89c564dfa5db5a93acaa8ac3b013acd564cd5202..534f87e98716301478c108b5971810b449620d77 100644 (file)
@@ -36,10 +36,11 @@ unevaluatedProperties: false
 
 examples:
   - |
-     pm8150b {
+     pmic {
         #address-cells = <1>;
         #size-cells = <0>;
-        pm8150b_vbus: usb-vbus-regulator@1100 {
+
+        usb-vbus-regulator@1100 {
             compatible = "qcom,pm8150b-vbus-reg";
             reg = <0x1100>;
             regulator-min-microamp = <500000>;
index 9daf0fc2465ff25ce60992ede0e29568f25fc8af..1ef380d1515ec7a5238d1fe541b204a96984c7b5 100644 (file)
@@ -114,6 +114,11 @@ properties:
     description: Enable pull down resistor when the regulator is disabled.
     type: boolean
 
+  system-critical-regulator:
+    description: Set if the regulator is critical to system stability or
+      functionality.
+    type: boolean
+
   regulator-over-current-protection:
     description: Enable over current protection.
     type: boolean
@@ -181,6 +186,14 @@ properties:
       be enabled but limit setting can be omitted. Limit is given as microvolt
       offset from voltage set to regulator.
 
+  regulator-uv-less-critical-window-ms:
+    description: Specifies the time window (in milliseconds) following a
+      critical under-voltage event during which the system can continue to
+      operate safely while performing less critical operations. This property
+      provides a defined duration before a more severe reaction to the
+      under-voltage event is needed, allowing for certain non-urgent actions to
+      be carried out in preparation for potential power loss.
+
   regulator-temp-protection-kelvin:
     description: Set over temperature protection limit. This is a limit where
       hardware performs emergency shutdown. Zero can be passed to disable
index 30632efdad8bb2ce6605eb4ab1d8bb881a805f34..df36e29d974ca08850df5b0dc864f33d52d93470 100644 (file)
@@ -113,10 +113,10 @@ examples:
     };
 
     imx7d-cm4 {
-      compatible       = "fsl,imx7d-cm4";
-      memory-region    = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
-      syscon           = <&src>;
-      clocks           = <&clks IMX7D_ARM_M4_ROOT_CLK>;
+      compatible = "fsl,imx7d-cm4";
+      memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
+      syscon = <&src>;
+      clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
     };
 
   - |
index f10f329677d84d06baa5d7fc6f0f68b559b7bcf0..c054b84fdcd5c51a31a628327bf2e99b851ff4d6 100644 (file)
@@ -18,7 +18,10 @@ properties:
     enum:
       - qcom,sc7180-adsp-pas
       - qcom,sc7180-mpss-pas
+      - qcom,sc7280-adsp-pas
+      - qcom,sc7280-cdsp-pas
       - qcom,sc7280-mpss-pas
+      - qcom,sc7280-wpss-pas
 
   reg:
     maxItems: 1
@@ -75,6 +78,7 @@ allOf:
         compatible:
           enum:
             - qcom,sc7180-adsp-pas
+            - qcom,sc7280-adsp-pas
     then:
       properties:
         power-domains:
@@ -109,6 +113,23 @@ allOf:
         compatible:
           enum:
             - qcom,sc7280-mpss-pas
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MSS power domain
+        power-domain-names:
+          items:
+            - const: cx
+            - const: mss
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sc7280-cdsp-pas
+            - qcom,sc7280-wpss-pas
     then:
       properties:
         power-domains:
index d3fdee89d4f845ad82138d2e253d8c9c9fd3e853..f0c6c0df0ce3f36bc8a07bb29b13956c81158f12 100644 (file)
@@ -18,6 +18,7 @@ properties:
       - amlogic,meson-axg-reset # Reset Controller on AXG and compatible SoCs
       - amlogic,meson-a1-reset # Reset Controller on A1 and compatible SoCs
       - amlogic,meson-s4-reset # Reset Controller on S4 and compatible SoCs
+      - amlogic,c3-reset # Reset Controller on C3 and compatible SoCs
 
   reg:
     maxItems: 1
index b11ac533f914caf978ad56360eca33b5dcb2935c..f5ec1d54aa51225d92611c030f316588e9867038 100644 (file)
@@ -28,28 +28,17 @@ description: |
 properties:
   compatible:
     oneOf:
-      - const: "fsl,imx51-src"
+      - const: fsl,imx51-src
       - items:
-          - const: "fsl,imx50-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx53-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx6q-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx6sx-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx6sl-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx6ul-src"
-          - const: "fsl,imx51-src"
-      - items:
-          - const: "fsl,imx6sll-src"
-          - const: "fsl,imx51-src"
+          - enum:
+              - fsl,imx50-src
+              - fsl,imx53-src
+              - fsl,imx6q-src
+              - fsl,imx6sx-src
+              - fsl,imx6sl-src
+              - fsl,imx6ul-src
+              - fsl,imx6sll-src
+          - const: fsl,imx51-src
 
   reg:
     maxItems: 1
index cdfcf32c53fa9371833cd77dbc16e11f2a789d2e..e4de002d6903201fc17127c23307d331e93d6766 100644 (file)
@@ -50,32 +50,9 @@ additionalProperties: false
 
 examples:
   - |
-    #include <dt-bindings/interrupt-controller/irq.h>
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    #include <dt-bindings/clock/hi3660-clock.h>
-
-    iomcu: iomcu@ffd7e000 {
-        compatible = "hisilicon,hi3660-iomcu", "syscon";
-        reg = <0xffd7e000 0x1000>;
-    };
-
-    iomcu_rst: iomcu_rst_controller {
+    iomcu_rst_controller {
         compatible = "hisilicon,hi3660-reset";
         hisilicon,rst-syscon = <&iomcu>;
         #reset-cells = <2>;
     };
-
-    /* Specifying reset lines connected to IP modules */
-    i2c@ffd71000 {
-        compatible = "snps,designware-i2c";
-        reg = <0xffd71000 0x1000>;
-        interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
-        #address-cells = <1>;
-        #size-cells = <0>;
-        clock-frequency = <400000>;
-        clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>;
-        resets = <&iomcu_rst 0x20 3>;
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
-    };
 ...
index d92e2b3cc83f9c427a026d43072bd1f0c1e57d35..24beb712b56d8ba91e54f207bf8a233f67c2d3a8 100644 (file)
@@ -18,17 +18,17 @@ properties:
     oneOf:
       - description: on SC7180 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sc7180-aoss-cc"
-          - const: "qcom,sdm845-aoss-cc"
+          - const: qcom,sc7180-aoss-cc
+          - const: qcom,sdm845-aoss-cc
 
       - description: on SC7280 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sc7280-aoss-cc"
-          - const: "qcom,sdm845-aoss-cc"
+          - const: qcom,sc7280-aoss-cc
+          - const: qcom,sdm845-aoss-cc
 
       - description: on SDM845 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sdm845-aoss-cc"
+          - const: qcom,sdm845-aoss-cc
 
   reg:
     maxItems: 1
index ca5d79332189bc8b163e7ac345beef77e5b37168..f514363aa474934987ecdbf63d39cb01db10efeb 100644 (file)
@@ -18,16 +18,16 @@ properties:
     oneOf:
       - description: on SC7180 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sc7180-pdc-global"
-          - const: "qcom,sdm845-pdc-global"
+          - const: qcom,sc7180-pdc-global
+          - const: qcom,sdm845-pdc-global
 
       - description: on SC7280 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sc7280-pdc-global"
+          - const: qcom,sc7280-pdc-global
 
       - description: on SDM845 SoCs the following compatibles must be specified
         items:
-          - const: "qcom,sdm845-pdc-global"
+          - const: qcom,sdm845-pdc-global
 
   reg:
     maxItems: 1
index 731b8ce01525c26035e160b20936b1dfa343d151..03c18611e42d19649e0179165a97569656a6c35f 100644 (file)
@@ -17,7 +17,7 @@ properties:
   compatible:
     items:
       - enum:
-          - renesas,r9a07g043-usbphy-ctrl # RZ/G2UL
+          - renesas,r9a07g043-usbphy-ctrl # RZ/G2UL and RZ/Five
           - renesas,r9a07g044-usbphy-ctrl # RZ/G2{L,LC}
           - renesas,r9a07g054-usbphy-ctrl # RZ/V2L
       - const: renesas,rzg2l-usbphy-ctrl
index 49db668014297040f85b628137769951663992ed..1f1b42dde94d5086020f0a89d183eafa1ea17589 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Zynq UltraScale+ MPSoC and Versal reset
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 description: |
   The Zynq UltraScale+ MPSoC and Versal has several different resets.
index f392e367d673f5c2c8853379c1955b906211c41e..9d8670c00e3b3bdea5d2196b98538d97465abf0d 100644 (file)
@@ -32,6 +32,7 @@ properties:
     oneOf:
       - items:
           - enum:
+              - amd,mbv32
               - andestech,ax45mp
               - canaan,k210
               - sifive,bullet0
@@ -62,8 +63,8 @@ properties:
 
   mmu-type:
     description:
-      Identifies the MMU address translation mode used on this
-      hart.  These values originate from the RISC-V Privileged
+      Identifies the largest MMU address translation mode supported by
+      this hart.  These values originate from the RISC-V Privileged
       Specification document, available from
       https://riscv.org/specifications/
     $ref: /schemas/types.yaml#/definitions/string
@@ -79,6 +80,11 @@ properties:
     description:
       The blocksize in bytes for the Zicbom cache operations.
 
+  riscv,cbop-block-size:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The blocksize in bytes for the Zicbop cache operations.
+
   riscv,cboz-block-size:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
index c91ab0e46648204e906982dedf999f90cc72a58f..63d81dc895e5ce4c08715ce1d6bf0958a757ca86 100644 (file)
@@ -48,7 +48,7 @@ properties:
       insensitive, letters in the riscv,isa string must be all
       lowercase.
     $ref: /schemas/types.yaml#/definitions/string
-    pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
+    pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[0-9a-z])+)?(?:_[hsxz](?:[0-9a-z])+)*$
     deprecated: true
 
   riscv,isa-base:
@@ -171,6 +171,12 @@ properties:
             memory types as ratified in the 20191213 version of the privileged
             ISA specification.
 
+        - const: zacas
+          description: |
+            The Zacas extension for Atomic Compare-and-Swap (CAS) instructions
+            is supported as ratified at commit 5059e0ca641c ("update to
+            ratified") of the riscv-zacas.
+
         - const: zba
           description: |
             The standard Zba bit-manipulation extension for address generation
@@ -190,12 +196,111 @@ properties:
             multiplication as ratified at commit 6d33919 ("Merge pull request
             #158 from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
 
+        - const: zbkb
+          description:
+            The standard Zbkb bitmanip instructions for cryptography as ratified
+            in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zbkc
+          description:
+            The standard Zbkc carry-less multiply instructions as ratified
+            in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zbkx
+          description:
+            The standard Zbkx crossbar permutation instructions as ratified
+            in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
         - const: zbs
           description: |
             The standard Zbs bit-manipulation extension for single-bit
             instructions as ratified at commit 6d33919 ("Merge pull request #158
             from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
 
+        - const: zfa
+          description:
+            The standard Zfa extension for additional floating point
+            instructions, as ratified in commit 056b6ff ("Zfa is ratified") of
+            riscv-isa-manual.
+
+        - const: zfh
+          description:
+            The standard Zfh extension for 16-bit half-precision binary
+            floating-point instructions, as ratified in commit 64074bc ("Update
+            version numbers for Zfh/Zfinx") of riscv-isa-manual.
+
+        - const: zfhmin
+          description:
+            The standard Zfhmin extension which provides minimal support for
+            16-bit half-precision binary floating-point instructions, as ratified
+            in commit 64074bc ("Update version numbers for Zfh/Zfinx") of
+            riscv-isa-manual.
+
+        - const: zk
+          description:
+            The standard Zk Standard Scalar cryptography extension as ratified
+            in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zkn
+          description:
+            The standard Zkn NIST algorithm suite extensions as ratified in
+            version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zknd
+          description: |
+            The standard Zknd for NIST suite: AES decryption instructions as
+            ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zkne
+          description: |
+            The standard Zkne for NIST suite: AES encryption instructions as
+            ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zknh
+          description: |
+            The standard Zknh for NIST suite: hash function instructions as
+            ratified in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zkr
+          description:
+            The standard Zkr entropy source extension as ratified in version
+            1.0 of RISC-V Cryptography Extensions Volume I specification.
+            This string being present means that the CSR associated to this
+            extension is accessible at the privilege level to which that
+            device-tree has been provided.
+
+        - const: zks
+          description:
+            The standard Zks ShangMi algorithm suite extensions as ratified in
+            version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
+        - const: zksed
+          description: |
+            The standard Zksed for ShangMi suite: SM4 block cipher instructions
+            as ratified in version 1.0 of RISC-V Cryptography Extensions
+            Volume I specification.
+
+        - const: zksh
+          description: |
+            The standard Zksh for ShangMi suite: SM3 hash function instructions
+            as ratified in version 1.0 of RISC-V Cryptography Extensions
+            Volume I specification.
+
+        - const: zkt
+          description:
+            The standard Zkt for data independent execution latency as ratified
+            in version 1.0 of RISC-V Cryptography Extensions Volume I
+            specification.
+
         - const: zicbom
           description:
             The standard Zicbom extension for base cache management operations as
@@ -246,6 +351,12 @@ properties:
             The standard Zihintpause extension for pause hints, as ratified in
             commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-manual.
 
+        - const: zihintntl
+          description:
+            The standard Zihintntl extension for non-temporal locality hints, as
+            ratified in commit 0dc91f5 ("Zihintntl is ratified") of the
+            riscv-isa-manual.
+
         - const: zihpm
           description:
             The standard Zihpm extension for hardware performance counters, as
@@ -258,5 +369,113 @@ properties:
             in commit 2e5236 ("Ztso is now ratified.") of the
             riscv-isa-manual.
 
+        - const: zvbb
+          description:
+            The standard Zvbb extension for vectored basic bit-manipulation
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvbc
+          description:
+            The standard Zvbc extension for vectored carryless multiplication
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvfh
+          description:
+            The standard Zvfh extension for vectored half-precision
+            floating-point instructions, as ratified in commit e2ccd05
+            ("Remove draft warnings from Zvfh[min]") of riscv-v-spec.
+
+        - const: zvfhmin
+          description:
+            The standard Zvfhmin extension for vectored minimal half-precision
+            floating-point instructions, as ratified in commit e2ccd05
+            ("Remove draft warnings from Zvfh[min]") of riscv-v-spec.
+
+        - const: zvkb
+          description:
+            The standard Zvkb extension for vector cryptography bit-manipulation
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvkg
+          description:
+            The standard Zvkg extension for vector GCM/GMAC instructions, as
+            ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc")
+            of riscv-crypto.
+
+        - const: zvkn
+          description:
+            The standard Zvkn extension for NIST algorithm suite instructions, as
+            ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc")
+            of riscv-crypto.
+
+        - const: zvknc
+          description:
+            The standard Zvknc extension for NIST algorithm suite with carryless
+            multiply instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvkned
+          description:
+            The standard Zvkned extension for Vector AES block cipher
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvkng
+          description:
+            The standard Zvkng extension for NIST algorithm suite with GCM
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvknha
+          description: |
+            The standard Zvknha extension for NIST suite: vector SHA-2 secure,
+            hash (SHA-256 only) instructions, as ratified in commit
+            56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvknhb
+          description: |
+            The standard Zvknhb extension for NIST suite: vector SHA-2 secure,
+            hash (SHA-256 and SHA-512) instructions, as ratified in commit
+            56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvks
+          description:
+            The standard Zvks extension for ShangMi algorithm suite
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvksc
+          description:
+            The standard Zvksc extension for ShangMi algorithm suite with
+            carryless multiplication instructions, as ratified in commit 56ed795
+            ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvksed
+          description: |
+            The standard Zvksed extension for ShangMi suite: SM4 block cipher
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvksh
+          description: |
+            The standard Zvksh extension for ShangMi suite: SM3 secure hash
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvksg
+          description:
+            The standard Zvksg extension for ShangMi algorithm suite with GCM
+            instructions, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
+        - const: zvkt
+          description:
+            The standard Zvkt extension for vector data-independent execution
+            latency, as ratified in commit 56ed795 ("Update
+            riscv-crypto-spec-vector.adoc") of riscv-crypto.
+
 additionalProperties: true
 ...
index 86748c5390bea6793d288e0b3563a34d47485c06..9bc813dad0987a20e6fbb2bd941f2f756cb1e39c 100644 (file)
@@ -22,6 +22,10 @@ properties:
           - enum:
               - milkv,duo
           - const: sophgo,cv1800b
+      - items:
+          - enum:
+              - sophgo,huashan-pi
+          - const: sophgo,cv1812h
       - items:
           - enum:
               - milkv,pioneer
index 2b76ce25acc4aadcfcf7e42b4e66d933fea64629..4639247e9e510ddcd33873c3a27358b63f8be712 100644 (file)
@@ -11,7 +11,11 @@ maintainers:
 
 properties:
   compatible:
-    const: starfive,jh7110-trng
+    oneOf:
+      - items:
+          - const: starfive,jh8100-trng
+          - const: starfive,jh7110-trng
+      - const: starfive,jh7110-trng
 
   reg:
     maxItems: 1
diff --git a/Bindings/rtc/adi,max31335.yaml b/Bindings/rtc/adi,max31335.yaml
new file mode 100644 (file)
index 0000000..0125cf6
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/adi,max31335.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices MAX31335 RTC
+
+maintainers:
+  - Antoniu Miclaus <antoniu.miclaus@analog.com>
+
+description:
+  Analog Devices MAX31335 I2C RTC ±2ppm Automotive Real-Time Clock with
+  Integrated MEMS Resonator.
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    const: adi,max31335
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#clock-cells":
+    description:
+      RTC can be used as a clock source through its clock output pin.
+    const: 0
+
+  adi,tc-diode:
+    description:
+      Select the diode configuration for the trickle charger.
+      schottky - Schottky diode in series.
+      standard+schottky - standard diode + Schottky diode in series.
+    enum: [schottky, standard+schottky]
+
+  trickle-resistor-ohms:
+    description:
+      Selected resistor for trickle charger. Should be specified if trickle
+      charger should be enabled.
+    enum: [3000, 6000, 11000]
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        rtc@68 {
+            compatible = "adi,max31335";
+            reg = <0x68>;
+            pinctrl-0 = <&rtc_nint_pins>;
+            interrupts-extended = <&gpio1 16 IRQ_TYPE_LEVEL_HIGH>;
+            aux-voltage-chargeable = <1>;
+            trickle-resistor-ohms = <6000>;
+            adi,tc-diode = "schottky";
+        };
+    };
+...
index 1df7c45d95c18ef90c8e996be5b83bc243099155..b770149c5fd677137bbeee87178d4188e5a0b59b 100644 (file)
@@ -29,6 +29,8 @@ properties:
 
   trickle-diode-disable: true
 
+  wakeup-source: true
+
 required:
   - compatible
   - reg
diff --git a/Bindings/rtc/nuvoton,ma35d1-rtc.yaml b/Bindings/rtc/nuvoton,ma35d1-rtc.yaml
new file mode 100644 (file)
index 0000000..5e4ade8
--- /dev/null
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/nuvoton,ma35d1-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 Real Time Clock
+
+maintainers:
+  - Min-Jen Chen <mjchen@nuvoton.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,ma35d1-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+    rtc@40410000 {
+        compatible = "nuvoton,ma35d1-rtc";
+        reg = <0x40410000 0x200>;
+        interrupts = <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>;
+        clocks = <&clk RTC_GATE>;
+    };
+
+...
index b95a69cc9ae0fef4e4111bade35faa4a7ddb339f..d274bb7a534b55ef83a05da2c2b8446f38342c88 100644 (file)
@@ -61,27 +61,27 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/interrupt-controller/irq.h>
     #include <dt-bindings/spmi/spmi.h>
-    spmi_bus: spmi@c440000 {
-      reg = <0x0c440000 0x1100>;
-      #address-cells = <2>;
-      #size-cells = <0>;
-      pmicintc: pmic@0 {
-        reg = <0x0 SPMI_USID>;
-        compatible = "qcom,pm8921";
-        interrupts = <104 8>;
-        #interrupt-cells = <2>;
-        interrupt-controller;
-        #address-cells = <1>;
+
+    spmi {
+        #address-cells = <2>;
         #size-cells = <0>;
 
-        pm8921_rtc: rtc@11d {
-          compatible = "qcom,pm8921-rtc";
-          reg = <0x11d>;
-          interrupts = <0x27 0>;
-          nvmem-cells = <&rtc_offset>;
-          nvmem-cell-names = "offset";
+        pmic@0 {
+            compatible = "qcom,pm8941", "qcom,spmi-pmic";
+            reg = <0x0 SPMI_USID>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            rtc@6000 {
+                compatible = "qcom,pm8941-rtc";
+                reg = <0x6000>, <0x6100>;
+                reg-names = "rtc", "alarm";
+                interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
+                nvmem-cells = <&rtc_offset>;
+                nvmem-cell-names = "offset";
+            };
         };
-      };
     };
 ...
index d51b236939bf360aeff7ee8c081944e8f6f9364b..bf4e11d6dffbb77bbd3c6608d4500e82e7ded5e7 100644 (file)
@@ -17,6 +17,11 @@ properties:
           - samsung,s3c2416-rtc
           - samsung,s3c2443-rtc
           - samsung,s3c6410-rtc
+      - items:
+          - enum:
+              - samsung,exynos7-rtc
+              - samsung,exynos850-rtc
+          - const: samsung,s3c6410-rtc
       - const: samsung,exynos3250-rtc
         deprecated: true
 
diff --git a/Bindings/security/tpm/google,cr50.txt b/Bindings/security/tpm/google,cr50.txt
deleted file mode 100644 (file)
index cd69c2e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-* H1 Secure Microcontroller with Cr50 Firmware on SPI Bus.
-
-H1 Secure Microcontroller running Cr50 firmware provides several
-functions, including TPM-like functionality. It communicates over
-SPI using the FIFO protocol described in the PTP Spec, section 6.
-
-Required properties:
-- compatible: Should be "google,cr50".
-- spi-max-frequency: Maximum SPI frequency.
-
-Example:
-
-&spi0 {
-       tpm@0 {
-               compatible = "google,cr50";
-               reg = <0>;
-               spi-max-frequency = <800000>;
-       };
-};
diff --git a/Bindings/security/tpm/ibmvtpm.txt b/Bindings/security/tpm/ibmvtpm.txt
deleted file mode 100644 (file)
index d89f999..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-* Device Tree Bindings for IBM Virtual Trusted Platform Module(vtpm)
-
-Required properties:
-
-- compatible            : property name that conveys the platform architecture
-                          identifiers, as 'IBM,vtpm'
-- device_type           : specifies type of virtual device
-- interrupts            : property specifying the interrupt source number and
-                          sense code associated with this virtual I/O Adapters
-- ibm,my-drc-index      : integer index for the connector between the device
-                          and its parent - present only if Dynamic
-                          Reconfiguration(DR) Connector is enabled
-- ibm,#dma-address-cells: specifies the number of cells that are used to
-                          encode the physical address field of dma-window
-                          properties
-- ibm,#dma-size-cells   : specifies the number of cells that are used to
-                          encode the size field of dma-window properties
-- ibm,my-dma-window     : specifies DMA window associated with this virtual
-                          IOA
-- ibm,loc-code          : specifies the unique and persistent location code
-                          associated with this virtual I/O Adapters
-- linux,sml-base        : 64-bit base address of the reserved memory allocated
-                          for the firmware event log
-- linux,sml-size        : size of the memory allocated for the firmware event log
-
-Example (IBM Virtual Trusted Platform Module)
----------------------------------------------
-
-                vtpm@30000003 {
-                        ibm,#dma-size-cells = <0x2>;
-                        compatible = "IBM,vtpm";
-                        device_type = "IBM,vtpm";
-                        ibm,my-drc-index = <0x30000003>;
-                        ibm,#dma-address-cells = <0x2>;
-                        linux,sml-base = <0xc60e 0x0>;
-                        interrupts = <0xa0003 0x0>;
-                        ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
-                        ibm,loc-code = "U8286.41A.10082DV-V3-C3";
-                        reg = <0x30000003>;
-                        linux,sml-size = <0xbce10200>;
-                };
diff --git a/Bindings/security/tpm/st33zp24-i2c.txt b/Bindings/security/tpm/st33zp24-i2c.txt
deleted file mode 100644 (file)
index 0dc121b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-* STMicroelectronics SAS. ST33ZP24 TPM SoC
-
-Required properties:
-- compatible: Should be "st,st33zp24-i2c".
-- clock-frequency: I²C work frequency.
-- reg: address on the bus
-
-Optional ST33ZP24 Properties:
-- interrupts: GPIO interrupt to which the chip is connected
-- lpcpd-gpios: Output GPIO pin used for ST33ZP24 power management D1/D2 state.
-If set, power must be present when the platform is going into sleep/hibernate mode.
-
-Optional SoC Specific Properties:
-- pinctrl-names: Contains only one value - "default".
-- pintctrl-0: Specifies the pin control groups used for this controller.
-
-Example (for ARM-based BeagleBoard xM with ST33ZP24 on I2C2):
-
-&i2c2 {
-
-
-        st33zp24: st33zp24@13 {
-
-                compatible = "st,st33zp24-i2c";
-
-                reg = <0x13>;
-                clock-frequency = <400000>;
-
-                interrupt-parent = <&gpio5>;
-                interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
-
-                lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
-        };
-};
diff --git a/Bindings/security/tpm/st33zp24-spi.txt b/Bindings/security/tpm/st33zp24-spi.txt
deleted file mode 100644 (file)
index 3719897..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-* STMicroelectronics SAS. ST33ZP24 TPM SoC
-
-Required properties:
-- compatible: Should be "st,st33zp24-spi".
-- spi-max-frequency: Maximum SPI frequency (<= 10000000).
-
-Optional ST33ZP24 Properties:
-- interrupts: GPIO interrupt to which the chip is connected
-- lpcpd-gpios: Output GPIO pin used for ST33ZP24 power management D1/D2 state.
-If set, power must be present when the platform is going into sleep/hibernate mode.
-
-Optional SoC Specific Properties:
-- pinctrl-names: Contains only one value - "default".
-- pintctrl-0: Specifies the pin control groups used for this controller.
-
-Example (for ARM-based BeagleBoard xM with ST33ZP24 on SPI4):
-
-&mcspi4 {
-
-
-        st33zp24@0 {
-
-                compatible = "st,st33zp24-spi";
-
-                spi-max-frequency = <10000000>;
-
-                interrupt-parent = <&gpio5>;
-                interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
-
-                lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
-        };
-};
diff --git a/Bindings/security/tpm/tpm-i2c.txt b/Bindings/security/tpm/tpm-i2c.txt
deleted file mode 100644 (file)
index a65d7b7..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-* Device Tree Bindings for I2C based Trusted Platform Module(TPM)
-
-Required properties:
-
-- compatible     : 'manufacturer,model', eg. nuvoton,npct650
-- label          : human readable string describing the device, eg. "tpm"
-- linux,sml-base : 64-bit base address of the reserved memory allocated for
-                   the firmware event log
-- linux,sml-size : size of the memory allocated for the firmware event log
-
-Optional properties:
-
-- powered-while-suspended: present when the TPM is left powered on between
-                           suspend and resume (makes the suspend/resume
-                           callbacks do nothing).
-
-Example (for OpenPower Systems with Nuvoton TPM 2.0 on I2C)
-----------------------------------------------------------
-
-tpm@57 {
-       reg = <0x57>;
-       label = "tpm";
-       compatible = "nuvoton,npct650", "nuvoton,npct601";
-       linux,sml-base = <0x7f 0xfd450000>;
-       linux,sml-size = <0x10000>;
-};
diff --git a/Bindings/security/tpm/tpm_tis_mmio.txt b/Bindings/security/tpm/tpm_tis_mmio.txt
deleted file mode 100644 (file)
index 7c63044..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Trusted Computing Group MMIO Trusted Platform Module
-
-The TCG defines multi vendor standard for accessing a TPM chip, this
-is the standard protocol defined to access the TPM via MMIO. Typically
-this interface will be implemented over Intel's LPC bus.
-
-Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
-publication for the specification.
-
-Required properties:
-
-- compatible: should contain a string below for the chip, followed by
-              "tcg,tpm-tis-mmio". Valid chip strings are:
-                 * "atmel,at97sc3204"
-- reg: The location of the MMIO registers, should be at least 0x5000 bytes
-- interrupts: An optional interrupt indicating command completion.
-
-Example:
-
-       tpm_tis@90000 {
-                               compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
-                               reg = <0x90000 0x5000>;
-                               interrupt-parent = <&EIC0>;
-                               interrupts = <1 2>;
-       };
diff --git a/Bindings/security/tpm/tpm_tis_spi.txt b/Bindings/security/tpm/tpm_tis_spi.txt
deleted file mode 100644 (file)
index b800667..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Required properties:
-- compatible: should be one of the following
-    "st,st33htpm-spi"
-    "infineon,slb9670"
-    "tcg,tpm_tis-spi"
-- spi-max-frequency: Maximum SPI frequency (depends on TPMs).
-
-Optional SoC Specific Properties:
-- pinctrl-names: Contains only one value - "default".
-- pintctrl-0: Specifies the pin control groups used for this controller.
-
-Example (for ARM-based BeagleBoard xM with TPM_TIS on SPI4):
-
-&mcspi4 {
-
-
-        tpm_tis@0 {
-
-                compatible = "tcg,tpm_tis-spi";
-
-                spi-max-frequency = <10000000>;
-        };
-};
diff --git a/Bindings/serial/arm,dcc.yaml b/Bindings/serial/arm,dcc.yaml
new file mode 100644 (file)
index 0000000..fd05893
--- /dev/null
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/arm,dcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM DCC (Data communication channel) serial emulation
+
+maintainers:
+  - Michal Simek <michal.simek@amd.com>
+
+description: |
+  ARM DCC (Data communication channel) serial emulation interface available
+  via JTAG can be also used as one of serial line tightly coupled with every
+  ARM CPU available in the system.
+
+properties:
+  compatible:
+    const: arm,dcc
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    serial {
+      compatible = "arm,dcc";
+    };
index 920539926d7e237d8b84694ec174f62552842e25..7a105551fa6a89a3e2434a5410d315e409bccab5 100644 (file)
@@ -13,7 +13,7 @@ description: |
   https://www.nxp.com/webapp/Download?colCode=S32V234RM.
 
 maintainers:
-  - Chester Lin <clin@suse.com>
+  - Chester Lin <chester62515@gmail.com>
 
 allOf:
   - $ref: serial.yaml#
index 83035553044a23206940a7f9662cff1b183d8b9a..9c6dc16f88a6f0fd4a8c8d9d57bdd077019552bc 100644 (file)
@@ -9,10 +9,6 @@ title: Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART)
 maintainers:
   - Fabio Estevam <festevam@gmail.com>
 
-allOf:
-  - $ref: serial.yaml#
-  - $ref: rs485.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -68,7 +64,11 @@ properties:
       - const: tx
 
   interrupts:
-    maxItems: 1
+    items:
+      - description: UART RX Interrupt
+      - description: UART TX Interrupt
+      - description: UART RTS Interrupt
+    minItems: 1
 
   wakeup-source: true
 
@@ -110,6 +110,25 @@ required:
   - clock-names
   - interrupts
 
+allOf:
+  - $ref: serial.yaml#
+  - $ref: rs485.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx1-uart
+    then:
+      properties:
+        interrupts:
+          minItems: 3
+          maxItems: 3
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
 unevaluatedProperties: false
 
 examples:
index ee52bf8e8917d482253edefe0ea2260a022bc461..e0fa363ad7e2e5cf17126f9bf38fd3e1f183b6d8 100644 (file)
@@ -48,9 +48,17 @@ properties:
       - const: tx
       - const: rx
 
+  interconnects:
+    maxItems: 1
+
   interrupts:
     maxItems: 1
 
+  operating-points-v2: true
+
+  power-domains:
+    maxItems: 1
+
   qcom,rx-crci:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
@@ -99,7 +107,9 @@ unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/interconnect/qcom,msm8996.h>
     #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
 
     serial@f991e000 {
         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
@@ -109,4 +119,7 @@ examples:
         clock-names = "core", "iface";
         dmas = <&dma0 0>, <&dma0 1>;
         dma-names = "tx", "rx";
+        power-domains = <&rpmpd MSM8996_VDDCX>;
+        operating-points-v2 = <&uart_opp_table>;
+        interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
     };
index 9f7305200c47e96fc7f9e4a938555557202ffc08..64d3db6e54e5c3fdb758feb0773074d877d4492a 100644 (file)
@@ -17,7 +17,7 @@ properties:
     oneOf:
       - items:
           - enum:
-              - renesas,r9a07g043-sci     # RZ/G2UL
+              - renesas,r9a07g043-sci     # RZ/G2UL and RZ/Five
               - renesas,r9a07g044-sci     # RZ/G2{L,LC}
               - renesas,r9a07g054-sci     # RZ/V2L
           - const: renesas,sci            # generic SCI compatible UART
index ac60ab1e35e3135e39854e00ef1443319cf27806..133259ed3a34c577ee86e58f36bdf2a4937afcf4 100644 (file)
@@ -18,17 +18,29 @@ description: |+
 properties:
   compatible:
     oneOf:
-      - items:
-          - const: samsung,exynosautov9-uart
-          - const: samsung,exynos850-uart
       - enum:
           - apple,s5l-uart
           - axis,artpec8-uart
+          - google,gs101-uart
           - samsung,s3c6400-uart
           - samsung,s5pv210-uart
           - samsung,exynos4210-uart
           - samsung,exynos5433-uart
           - samsung,exynos850-uart
+      - items:
+          - enum:
+              - samsung,exynos7-uart
+              - tesla,fsd-uart
+          - const: samsung,exynos4210-uart
+      - items:
+          - enum:
+              - samsung,exynos7885-uart
+          - const: samsung,exynos5433-uart
+      - items:
+          - enum:
+              - samsung,exynosautov9-uart
+              - samsung,exynosautov920-uart
+          - const: samsung,exynos850-uart
 
   reg:
     maxItems: 1
@@ -122,6 +134,16 @@ allOf:
             - const: uart
             - const: clk_uart_baud0
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - google,gs101-uart
+    then:
+      required:
+        - samsung,uart-fifosize
+
 unevaluatedProperties: false
 
 examples:
index 17c553123f96ed92db1eae340b89edbdec1e016f..1001d2a6ace85fbc37304304049b1e2cdaad781d 100644 (file)
@@ -11,6 +11,7 @@ maintainers:
 
 allOf:
   - $ref: serial.yaml#
+  - $ref: rs485.yaml#
 
 properties:
   compatible:
index 28ff77aa86c8543ae60bae5e30b1e3842a4b57ee..f4dbb6dc2b6ef2e1954f9268eca32ab49014c037 100644 (file)
@@ -20,6 +20,7 @@ properties:
               - sprd,sc9860-uart
               - sprd,sc9863a-uart
               - sprd,ums512-uart
+              - sprd,ums9620-uart
           - const: sprd,sc9836-uart
       - const: sprd,sc9836-uart
 
index 16977e4e4357b719809c12d9df8fdd12cb8ef7aa..c6bce40946d4af9e5e94207769f28ce855c44df1 100644 (file)
@@ -158,3 +158,36 @@ examples:
             };
         };
     };
+
+  - |
+    system-controller@ff63c000 {
+        compatible = "amlogic,meson-axg-hhi-sysctrl", "simple-mfd", "syscon";
+        reg = <0xff63c000 0x400>;
+
+        clock-controller {
+            compatible = "amlogic,axg-clkc";
+            #clock-cells = <1>;
+            clocks = <&xtal>;
+            clock-names = "xtal";
+        };
+
+        power-controller {
+           compatible = "amlogic,meson-axg-pwrc";
+           #power-domain-cells = <1>;
+           amlogic,ao-sysctrl = <&sysctrl_AO>;
+
+           resets = <&reset_viu>,
+                    <&reset_venc>,
+                    <&reset_vcbus>,
+                    <&reset_vencl>,
+                    <&reset_vid_lock>;
+           reset-names = "viu", "venc", "vcbus", "vencl", "vid_lock";
+           clocks = <&clk_vpu>, <&clk_vapb>;
+           clock-names = "vpu", "vapb";
+        };
+
+        phy {
+           compatible = "amlogic,axg-mipi-pcie-analog-phy";
+           #phy-cells = <0>;
+        };
+    };
index a06ac2177444ebda93a3c696a539f46e96083938..4737e5f45d54104f0978d3c82b17d8b455b1b852 100644 (file)
@@ -41,7 +41,6 @@ properties:
               - mediatek,mt8173-pwrap
               - mediatek,mt8183-pwrap
               - mediatek,mt8186-pwrap
-              - mediatek,mt8188-pwrap
               - mediatek,mt8195-pwrap
               - mediatek,mt8365-pwrap
               - mediatek,mt8516-pwrap
@@ -50,6 +49,11 @@ properties:
               - mediatek,mt8186-pwrap
               - mediatek,mt8195-pwrap
           - const: syscon
+      - items:
+          - enum:
+              - mediatek,mt8188-pwrap
+          - const: mediatek,mt8195-pwrap
+          - const: syscon
 
   reg:
     minItems: 1
index 7eda63d5682f135beff6d86a31f3a6d92ad36d1e..742b91d1d28eb41c2e0a2220a1c4cc6e2ae61d6a 100644 (file)
@@ -22,8 +22,10 @@ properties:
   compatible:
     enum:
       - mediatek,mt8183-svs
+      - mediatek,mt8186-svs
       - mediatek,mt8188-svs
       - mediatek,mt8192-svs
+      - mediatek,mt8195-svs
 
   reg:
     maxItems: 1
index 365a9fed59147e774cb5c19d57203eaac7065a56..a3fa04f3a1bd93a94188ea486292c13a077f21a0 100644 (file)
@@ -26,6 +26,16 @@ properties:
   compatible:
     const: microchip,mpfs-sys-controller
 
+  microchip,bitstream-flash:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The SPI flash connected to the system controller's QSPI controller.
+      The system controller may retrieve FPGA bitstreams from this flash to
+      perform In-Application Programming (IAP) or during device initialisation
+      for Auto Update. The MSS and system controller have separate QSPI
+      controllers and this flash is connected to both. Software running in the
+      MSS can write bitstreams to the flash.
+
 required:
   - compatible
   - mboxes
index d1c7c2be865f3011c458bbf466bb15e20fe0df0c..b4478f417edc325f44a40739315f40bdab8bd694 100644 (file)
@@ -38,6 +38,8 @@ properties:
           - qcom,sm8350-aoss-qmp
           - qcom,sm8450-aoss-qmp
           - qcom,sm8550-aoss-qmp
+          - qcom,sm8650-aoss-qmp
+          - qcom,x1e80100-aoss-qmp
       - const: qcom,aoss-qmp
 
   reg:
index 422921cf1f827fcce7d5fe51f3ed419a47d8a2a4..61df97ffe1e409b49c35e4c219d85a98ca563e74 100644 (file)
@@ -20,14 +20,20 @@ description:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - qcom,sc8180x-pmic-glink
-          - qcom,sc8280xp-pmic-glink
-          - qcom,sm8350-pmic-glink
-          - qcom,sm8450-pmic-glink
-          - qcom,sm8550-pmic-glink
-      - const: qcom,pmic-glink
+    oneOf:
+      - items:
+          - enum:
+              - qcom,sc8180x-pmic-glink
+              - qcom,sc8280xp-pmic-glink
+              - qcom,sm8350-pmic-glink
+              - qcom,sm8450-pmic-glink
+              - qcom,sm8550-pmic-glink
+          - const: qcom,pmic-glink
+      - items:
+          - enum:
+              - qcom,sm8650-pmic-glink
+          - const: qcom,sm8550-pmic-glink
+          - const: qcom,pmic-glink
 
   '#address-cells':
     const: 1
index 96a7f18220225a7034786c359825facca4a8b3e3..686a7ef2f48af11a0e63904ff979e40d7538de65 100644 (file)
@@ -31,10 +31,24 @@ properties:
   reg:
     maxItems: 1
 
+  qcom,qmp:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Reference to the AOSS side-channel message RAM
+
 required:
   - compatible
   - reg
 
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            const: qcom,rpmh-stats
+    then:
+      properties:
+        qcom,qmp: false
+
 additionalProperties: false
 
 examples:
index 1309bf5ae0cdd1c68a5fad255edb9d21c2a17317..9793ea6f0fe65d35ca124554108537376fc689dd 100644 (file)
@@ -28,6 +28,8 @@ properties:
               - rockchip,rk3588-sys-grf
               - rockchip,rk3588-pcie3-phy-grf
               - rockchip,rk3588-pcie3-pipe-grf
+              - rockchip,rk3588-vo-grf
+              - rockchip,rk3588-vop-grf
               - rockchip,rv1108-usbgrf
           - const: syscon
       - items:
index e1d716df5dfa6679304fb6459cfc32354f368ebd..15fcd8f1d8bc7b26fe9175a2bde9c99de0940c4c 100644 (file)
@@ -15,6 +15,7 @@ select:
     compatible:
       contains:
         enum:
+          - google,gs101-pmu
           - samsung,exynos3250-pmu
           - samsung,exynos4210-pmu
           - samsung,exynos4212-pmu
@@ -35,6 +36,7 @@ properties:
     oneOf:
       - items:
           - enum:
+              - google,gs101-pmu
               - samsung,exynos3250-pmu
               - samsung,exynos4210-pmu
               - samsung,exynos4212-pmu
@@ -48,6 +50,14 @@ properties:
               - samsung,exynos850-pmu
               - samsung-s5pv210-pmu
           - const: syscon
+      - items:
+          - enum:
+              - samsung,exynos7885-pmu
+              - samsung,exynosautov9-pmu
+              - samsung,exynosautov920-pmu
+              - tesla,fsd-pmu
+          - const: samsung,exynos7-pmu
+          - const: syscon
       - items:
           - enum:
               - samsung,exynos3250-pmu
index a6836904a4f83592ed8ce144ea612441b8795400..8b478d6cdc303c606d4b64a79bd462358078f040 100644 (file)
@@ -24,7 +24,10 @@ properties:
   compatible:
     oneOf:
       - items:
-          - const: samsung,exynosautov9-usi
+          - enum:
+              - google,gs101-usi
+              - samsung,exynosautov9-usi
+              - samsung,exynosautov920-usi
           - const: samsung,exynos850-usi
       - enum:
           - samsung,exynos850-usi
@@ -155,7 +158,7 @@ examples:
         };
 
         hsi2c_0: i2c@13820000 {
-            compatible = "samsung,exynosautov9-hsi2c";
+            compatible = "samsung,exynos850-hsi2c", "samsung,exynosautov9-hsi2c";
             reg = <0x13820000 0xc0>;
             interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
             #address-cells = <1>;
index 163e912e9cadcdfb5825803ba2693c844a6e50fe..1794e3799f2110e716c44ef8cd1da737eeb16270 100644 (file)
@@ -14,9 +14,14 @@ properties:
     oneOf:
       - items:
           - enum:
+              - google,gs101-apm-sysreg
+              - google,gs101-peric0-sysreg
+              - google,gs101-peric1-sysreg
               - samsung,exynos3-sysreg
               - samsung,exynos4-sysreg
               - samsung,exynos5-sysreg
+              - samsung,exynosautov920-peric0-sysreg
+              - samsung,exynosautov920-peric1-sysreg
               - tesla,fsd-cam-sysreg
               - tesla,fsd-fsys0-sysreg
               - tesla,fsd-fsys1-sysreg
similarity index 95%
rename from Bindings/arm/xilinx.yaml
rename to Bindings/soc/xilinx/xilinx.yaml
index f57ed0347894bac7d0b08981766ff719d7236e00..d4c0fe1fe435803db9fcbeddb72c295bfb3cd0e2 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/xilinx.yaml#
+$id: http://devicetree.org/schemas/soc/xilinx/xilinx.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Xilinx Zynq Platforms
@@ -132,6 +132,11 @@ properties:
           - const: xlnx,zynqmp-smk-k26
           - const: xlnx,zynqmp
 
+      - description: AMD MicroBlaze V (QEMU)
+        items:
+          - const: qemu,mbv
+          - const: amd,mbv
+
 additionalProperties: true
 
 ...
index a844b63f393051f8c7f0542bafbe5d367cd49f5d..c388cda560113bcb5bb594f71ad8155e5a1bc14d 100644 (file)
@@ -39,7 +39,7 @@ unevaluatedProperties: false
 
 examples:
   - |
-    soundwire-controller@3250000 {
+    soundwire@3250000 {
         #address-cells = <2>;
         #size-cells = <0>;
         reg = <0x3250000 0x2000>;
index 8108c564dd78a84a1d869a60b975dcb51e6480ff..aa32dc950e72ccdaf7fb1ac7f759d57a855fc9b6 100644 (file)
@@ -22,6 +22,7 @@ properties:
       - const: allwinner,sun6i-a31-spdif
       - const: allwinner,sun8i-h3-spdif
       - const: allwinner,sun50i-h6-spdif
+      - const: allwinner,sun50i-h616-spdif
       - items:
           - const: allwinner,sun8i-a83t-spdif
           - const: allwinner,sun8i-h3-spdif
@@ -62,6 +63,8 @@ allOf:
             enum:
               - allwinner,sun6i-a31-spdif
               - allwinner,sun8i-h3-spdif
+              - allwinner,sun50i-h6-spdif
+              - allwinner,sun50i-h616-spdif
 
     then:
       required:
@@ -73,7 +76,7 @@ allOf:
           contains:
             enum:
               - allwinner,sun8i-h3-spdif
-              - allwinner,sun50i-h6-spdif
+              - allwinner,sun50i-h616-spdif
 
     then:
       properties:
index 60b5e3fd1115fec1bfe7dda30ad269f9409d579f..b13c08de505e41480732c2060df05c8081b17d31 100644 (file)
@@ -19,6 +19,12 @@ definitions:
     properties:
       mclk-fs:
         $ref: simple-card.yaml#/definitions/mclk-fs
+      playback-only:
+        description: port connection used only for playback
+        $ref: /schemas/types.yaml#/definitions/flag
+      capture-only:
+        description: port connection used only for capture
+        $ref: /schemas/types.yaml#/definitions/flag
 
   endpoint-base:
     allOf:
diff --git a/Bindings/sound/es8328.txt b/Bindings/sound/es8328.txt
deleted file mode 100644 (file)
index 33fbf05..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Everest ES8328 audio CODEC
-
-This device supports both I2C and SPI.
-
-Required properties:
-
-  - compatible  : Should be "everest,es8328" or "everest,es8388"
-  - DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V
-  - AVDD-supply : Regulator providing analog supply voltage 3.3V
-  - PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V
-  - IPVDD-supply : Regulator providing analog output voltage 3.3V
-  - clocks : A 22.5792 or 11.2896 MHz clock
-  - reg : the I2C address of the device for I2C, the chip select number for SPI
-
-Pins on the device (for linking into audio routes):
-
-  * LOUT1
-  * LOUT2
-  * ROUT1
-  * ROUT2
-  * LINPUT1
-  * RINPUT1
-  * LINPUT2
-  * RINPUT2
-  * Mic Bias
-
-
-Example:
-
-codec: es8328@11 {
-       compatible = "everest,es8328";
-       DVDD-supply = <&reg_3p3v>;
-       AVDD-supply = <&reg_3p3v>;
-       PVDD-supply = <&reg_3p3v>;
-       HPVDD-supply = <&reg_3p3v>;
-       clocks = <&clks 169>;
-       reg = <0x11>;
-};
diff --git a/Bindings/sound/everest,es8328.yaml b/Bindings/sound/everest,es8328.yaml
new file mode 100644 (file)
index 0000000..a0f4670
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/everest,es8328.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Everest ES8328 audio CODEC
+
+description:
+  Everest Audio Codec, which can be connected via I2C or SPI.
+  Pins on the device (for linking into audio routes) are
+  * LOUT1
+  * LOUT2
+  * ROUT1
+  * ROUT2
+  * LINPUT1
+  * RINPUT1
+  * LINPUT2
+  * RINPUT2
+  * Mic Bias
+
+maintainers:
+  - David Yang <yangxiaohua@everest-semi.com>
+
+properties:
+  compatible:
+    enum:
+      - everest,es8328
+      - everest,es8388
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  clocks:
+    items:
+      - description: A 22.5792 or 11.2896 MHz clock
+
+  DVDD-supply:
+    description: Regulator providing digital core supply voltage 1.8 - 3.6V
+
+  AVDD-supply:
+    description: Regulator providing analog supply voltage 3.3V
+
+  PVDD-supply:
+    description: Regulator providing digital IO supply voltage 1.8 - 3.6V
+
+  HPVDD-supply:
+    description: Regulator providing analog output voltage 3.3V
+
+required:
+  - compatible
+  - clocks
+  - DVDD-supply
+  - AVDD-supply
+  - PVDD-supply
+  - HPVDD-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      es8328: codec@11 {
+        compatible = "everest,es8328";
+        reg = <0x11>;
+        AVDD-supply = <&reg_3p3v>;
+        DVDD-supply = <&reg_3p3v>;
+        HPVDD-supply = <&reg_3p3v>;
+        PVDD-supply = <&reg_3p3v>;
+        clocks = <&clks 169>;
+      };
+    };
diff --git a/Bindings/sound/fsl,mqs.txt b/Bindings/sound/fsl,mqs.txt
deleted file mode 100644 (file)
index d66284b..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-fsl,mqs audio CODEC
-
-Required properties:
-  - compatible : Must contain one of "fsl,imx6sx-mqs", "fsl,codec-mqs"
-               "fsl,imx8qm-mqs", "fsl,imx8qxp-mqs", "fsl,imx93-mqs".
-  - clocks : A list of phandles + clock-specifiers, one for each entry in
-            clock-names
-  - clock-names : "mclk" - must required.
-                 "core" - required if compatible is "fsl,imx8qm-mqs", it
-                          is for register access.
-  - gpr : A phandle of General Purpose Registers in IOMUX Controller.
-         Required if compatible is "fsl,imx6sx-mqs".
-
-Required if compatible is "fsl,imx8qm-mqs":
-  - power-domains: A phandle of PM domain provider node.
-  - reg: Offset and length of the register set for the device.
-
-Example:
-
-mqs: mqs {
-       compatible = "fsl,imx6sx-mqs";
-       gpr = <&gpr>;
-       clocks = <&clks IMX6SX_CLK_SAI1>;
-       clock-names = "mclk";
-       status = "disabled";
-};
-
-mqs: mqs@59850000 {
-       compatible = "fsl,imx8qm-mqs";
-       reg = <0x59850000 0x10000>;
-       clocks = <&clk IMX8QM_AUD_MQS_IPG>,
-                <&clk IMX8QM_AUD_MQS_HMCLK>;
-       clock-names = "core", "mclk";
-       power-domains = <&pd_mqs0>;
-       status = "disabled";
-};
diff --git a/Bindings/sound/fsl,mqs.yaml b/Bindings/sound/fsl,mqs.yaml
new file mode 100644 (file)
index 0000000..8b33353
--- /dev/null
@@ -0,0 +1,105 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/fsl,mqs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP Medium Quality Sound (MQS)
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+  - Chancel Liu <chancel.liu@nxp.com>
+
+description: |
+  Medium quality sound (MQS) is used to generate medium quality audio
+  via a standard GPIO in the pinmux, allowing the user to connect
+  stereo speakers or headphones to a power amplifier without an
+  additional DAC chip.
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx6sx-mqs
+      - fsl,imx8qm-mqs
+      - fsl,imx8qxp-mqs
+      - fsl,imx93-mqs
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    maxItems: 2
+
+  gpr:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle to the General Purpose Register (GPR) node
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - clock-names
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-mqs
+              - fsl,imx8qxp-mqs
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Master clock
+            - description: Clock for register access
+        clock-names:
+          items:
+            - const: mclk
+            - const: core
+      required:
+        - reg
+        - power-domains
+    else:
+      properties:
+        clocks:
+          items:
+            - description: Master clock
+        clock-names:
+          items:
+            - const: mclk
+      required:
+        - gpr
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx6sx-clock.h>
+    mqs0: mqs {
+        compatible = "fsl,imx6sx-mqs";
+        gpr = <&gpr>;
+        clocks = <&clks IMX6SX_CLK_SAI1>;
+        clock-names = "mclk";
+    };
+
+  - |
+    #include <dt-bindings/firmware/imx/rsrc.h>
+    mqs1: mqs@59850000 {
+        compatible = "fsl,imx8qm-mqs";
+        reg = <0x59850000 0x10000>;
+        clocks = <&mqs0_lpcg 0>, <&mqs0_lpcg 1>;
+        clock-names = "mclk", "core";
+        power-domains = <&pd IMX_SC_R_MQS_0>;
+    };
index 799b362ba4987c77b39e2e1d368a88c9d74e8e02..0eb0c1ba8710dc14984c489696c2949cda680867 100644 (file)
@@ -38,7 +38,10 @@ properties:
       - const: txfifo
 
   interrupts:
-    maxItems: 1
+    items:
+      - description: WAKEUPMIX Audio XCVR Interrupt 1
+      - description: WAKEUPMIX Audio XCVR Interrupt 2
+    minItems: 1
 
   clocks:
     items:
@@ -78,6 +81,23 @@ required:
   - dma-names
   - resets
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx93-xcvr
+    then:
+      properties:
+        interrupts:
+          minItems: 2
+          maxItems: 2
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
 additionalProperties: false
 
 examples:
index ec4b6e547ca6efad4b77697c567e30da74707261..cdcd7c6f21eb241663c44fd8d066dc1700a8994b 100644 (file)
@@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Google SC7280-Herobrine ASoC sound card driver
 
 maintainers:
-  - Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
   - Judy Hsiao <judyhsiao@chromium.org>
 
 description:
diff --git a/Bindings/sound/mediatek,mt2701-audio.yaml b/Bindings/sound/mediatek,mt2701-audio.yaml
new file mode 100644 (file)
index 0000000..45382c4
--- /dev/null
@@ -0,0 +1,116 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/mediatek,mt2701-audio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Audio Front End (AFE) PCM controller for mt2701
+
+description:
+  The AFE PCM node must be a subnode of the MediaTek audsys device tree node.
+
+maintainers:
+  - Eugen Hristev <eugen.hristev@collabora.com>
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt2701-audio
+      - mediatek,mt7622-audio
+
+  interrupts:
+    items:
+      - description: AFE interrupt
+      - description: ASYS interrupt
+
+  interrupt-names:
+    items:
+      - const: afe
+      - const: asys
+
+  power-domains:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: audio infra sys clock
+      - description: top audio mux 1
+      - description: top audio mux 2
+      - description: top audio sys a1 clock
+      - description: top audio sys a2 clock
+      - description: i2s0 source selection
+      - description: i2s1 source selection
+      - description: i2s2 source selection
+      - description: i2s3 source selection
+      - description: i2s0 source divider
+      - description: i2s1 source divider
+      - description: i2s2 source divider
+      - description: i2s3 source divider
+      - description: i2s0 master clock
+      - description: i2s1 master clock
+      - description: i2s2 master clock
+      - description: i2s3 master clock
+      - description: i2so0 hopping clock
+      - description: i2so1 hopping clock
+      - description: i2so2 hopping clock
+      - description: i2so3 hopping clock
+      - description: i2si0 hopping clock
+      - description: i2si1 hopping clock
+      - description: i2si2 hopping clock
+      - description: i2si3 hopping clock
+      - description: asrc0 output clock
+      - description: asrc1 output clock
+      - description: asrc2 output clock
+      - description: asrc3 output clock
+      - description: audio front end pd clock
+      - description: audio front end conn pd clock
+      - description: top audio a1 sys pd
+      - description: top audio a2 sys pd
+      - description: audio merge interface pd
+
+  clock-names:
+    items:
+      - const: infra_sys_audio_clk
+      - const: top_audio_mux1_sel
+      - const: top_audio_mux2_sel
+      - const: top_audio_a1sys_hp
+      - const: top_audio_a2sys_hp
+      - const: i2s0_src_sel
+      - const: i2s1_src_sel
+      - const: i2s2_src_sel
+      - const: i2s3_src_sel
+      - const: i2s0_src_div
+      - const: i2s1_src_div
+      - const: i2s2_src_div
+      - const: i2s3_src_div
+      - const: i2s0_mclk_en
+      - const: i2s1_mclk_en
+      - const: i2s2_mclk_en
+      - const: i2s3_mclk_en
+      - const: i2so0_hop_ck
+      - const: i2so1_hop_ck
+      - const: i2so2_hop_ck
+      - const: i2so3_hop_ck
+      - const: i2si0_hop_ck
+      - const: i2si1_hop_ck
+      - const: i2si2_hop_ck
+      - const: i2si3_hop_ck
+      - const: asrc0_out_ck
+      - const: asrc1_out_ck
+      - const: asrc2_out_ck
+      - const: asrc3_out_ck
+      - const: audio_afe_pd
+      - const: audio_afe_conn_pd
+      - const: audio_a1sys_pd
+      - const: audio_a2sys_pd
+      - const: audio_mrgif_pd
+
+required:
+  - compatible
+  - interrupts
+  - interrupt-names
+  - power-domains
+  - clocks
+  - clock-names
+
+additionalProperties: false
index 4c8c95057ef7cac9fbc9a6cc2e997370e9fe0cbb..f94ad0715e3239653c74553e27231f1395babefa 100644 (file)
@@ -15,6 +15,7 @@ allOf:
 properties:
   compatible:
     enum:
+      - mediatek,mt8188-es8326
       - mediatek,mt8188-mt6359-evb
       - mediatek,mt8188-nau8825
       - mediatek,mt8188-rt5682s
diff --git a/Bindings/sound/mt2701-afe-pcm.txt b/Bindings/sound/mt2701-afe-pcm.txt
deleted file mode 100644 (file)
index f548e6a..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-Mediatek AFE PCM controller for mt2701
-
-Required properties:
-- compatible: should be one of the following.
-             - "mediatek,mt2701-audio"
-             - "mediatek,mt7622-audio"
-- interrupts: should contain AFE and ASYS interrupts
-- interrupt-names: should be "afe" and "asys"
-- power-domains: should define the power domain
-- clocks: Must contain an entry for each entry in clock-names
-  See ../clocks/clock-bindings.txt for details
-- clock-names: should have these clock names:
-               "infra_sys_audio_clk",
-               "top_audio_mux1_sel",
-               "top_audio_mux2_sel",
-               "top_audio_a1sys_hp",
-               "top_audio_a2sys_hp",
-               "i2s0_src_sel",
-               "i2s1_src_sel",
-               "i2s2_src_sel",
-               "i2s3_src_sel",
-               "i2s0_src_div",
-               "i2s1_src_div",
-               "i2s2_src_div",
-               "i2s3_src_div",
-               "i2s0_mclk_en",
-               "i2s1_mclk_en",
-               "i2s2_mclk_en",
-               "i2s3_mclk_en",
-               "i2so0_hop_ck",
-               "i2so1_hop_ck",
-               "i2so2_hop_ck",
-               "i2so3_hop_ck",
-               "i2si0_hop_ck",
-               "i2si1_hop_ck",
-               "i2si2_hop_ck",
-               "i2si3_hop_ck",
-               "asrc0_out_ck",
-               "asrc1_out_ck",
-               "asrc2_out_ck",
-               "asrc3_out_ck",
-               "audio_afe_pd",
-               "audio_afe_conn_pd",
-               "audio_a1sys_pd",
-               "audio_a2sys_pd",
-               "audio_mrgif_pd";
-- assigned-clocks: list of input clocks and dividers for the audio system.
-                  See ../clocks/clock-bindings.txt for details.
-- assigned-clocks-parents: parent of input clocks of assigned clocks.
-- assigned-clock-rates: list of clock frequencies of assigned clocks.
-
-Must be a subnode of MediaTek audsys device tree node.
-See ../arm/mediatek/mediatek,audsys.txt for details about the parent node.
-
-Example:
-
-       audsys: audio-subsystem@11220000 {
-               compatible = "mediatek,mt2701-audsys", "syscon";
-               ...
-
-               afe: audio-controller {
-                       compatible = "mediatek,mt2701-audio";
-                       interrupts =  <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
-                                     <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
-                       interrupt-names = "afe", "asys";
-                       power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
-
-                       clocks = <&infracfg CLK_INFRA_AUDIO>,
-                                <&topckgen CLK_TOP_AUD_MUX1_SEL>,
-                                <&topckgen CLK_TOP_AUD_MUX2_SEL>,
-                                <&topckgen CLK_TOP_AUD_48K_TIMING>,
-                                <&topckgen CLK_TOP_AUD_44K_TIMING>,
-                                <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
-                                <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
-                                <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
-                                <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
-                                <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
-                                <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
-                                <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
-                                <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
-                                <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
-                                <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
-                                <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
-                                <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
-                                <&audsys CLK_AUD_I2SO1>,
-                                <&audsys CLK_AUD_I2SO2>,
-                                <&audsys CLK_AUD_I2SO3>,
-                                <&audsys CLK_AUD_I2SO4>,
-                                <&audsys CLK_AUD_I2SIN1>,
-                                <&audsys CLK_AUD_I2SIN2>,
-                                <&audsys CLK_AUD_I2SIN3>,
-                                <&audsys CLK_AUD_I2SIN4>,
-                                <&audsys CLK_AUD_ASRCO1>,
-                                <&audsys CLK_AUD_ASRCO2>,
-                                <&audsys CLK_AUD_ASRCO3>,
-                                <&audsys CLK_AUD_ASRCO4>,
-                                <&audsys CLK_AUD_AFE>,
-                                <&audsys CLK_AUD_AFE_CONN>,
-                                <&audsys CLK_AUD_A1SYS>,
-                                <&audsys CLK_AUD_A2SYS>,
-                                <&audsys CLK_AUD_AFE_MRGIF>;
-
-                       clock-names = "infra_sys_audio_clk",
-                                     "top_audio_mux1_sel",
-                                     "top_audio_mux2_sel",
-                                     "top_audio_a1sys_hp",
-                                     "top_audio_a2sys_hp",
-                                     "i2s0_src_sel",
-                                     "i2s1_src_sel",
-                                     "i2s2_src_sel",
-                                     "i2s3_src_sel",
-                                     "i2s0_src_div",
-                                     "i2s1_src_div",
-                                     "i2s2_src_div",
-                                     "i2s3_src_div",
-                                     "i2s0_mclk_en",
-                                     "i2s1_mclk_en",
-                                     "i2s2_mclk_en",
-                                     "i2s3_mclk_en",
-                                     "i2so0_hop_ck",
-                                     "i2so1_hop_ck",
-                                     "i2so2_hop_ck",
-                                     "i2so3_hop_ck",
-                                     "i2si0_hop_ck",
-                                     "i2si1_hop_ck",
-                                     "i2si2_hop_ck",
-                                     "i2si3_hop_ck",
-                                     "asrc0_out_ck",
-                                     "asrc1_out_ck",
-                                     "asrc2_out_ck",
-                                     "asrc3_out_ck",
-                                     "audio_afe_pd",
-                                     "audio_afe_conn_pd",
-                                     "audio_a1sys_pd",
-                                     "audio_a2sys_pd",
-                                     "audio_mrgif_pd";
-
-                       assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
-                                         <&topckgen CLK_TOP_AUD_MUX2_SEL>,
-                                         <&topckgen CLK_TOP_AUD_MUX1_DIV>,
-                                         <&topckgen CLK_TOP_AUD_MUX2_DIV>;
-                       assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
-                                                <&topckgen CLK_TOP_AUD2PLL_90M>;
-                       assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
-               };
-       };
index 3e54abd4ca7473eea695e82f8ce6dffc25593a43..054b53954ac3d812195ce401f74dca69d82e69c5 100644 (file)
@@ -89,6 +89,14 @@ properties:
     $ref: /schemas/types.yaml#/definitions/uint32
     default: 3072000
 
+  nuvoton,dmic-slew-rate:
+    description: The range 0 to 7 represents the speed of DMIC slew rate.
+        The lowest value 0 means the slowest rate and the highest value
+        7 means the fastest rate.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 7
+    default: 0
+
   nuvoton,left-input-single-end:
     description: Enable left input with single-ended settings if set.
         For the headset mic application, the single-ended control is
@@ -127,6 +135,7 @@ examples:
             nuvoton,jack-insert-debounce = <7>;
             nuvoton,jack-eject-debounce = <0>;
             nuvoton,dmic-clk-threshold = <3072000>;
+            nuvoton,dmic-slew-rate = <0>;
             #sound-dai-cells = <0>;
         };
     };
index c29d7942915cccbaf58679f702c642632f5495b8..241d20f3aad08a845c57e3dead8fba25c4856e6a 100644 (file)
@@ -64,7 +64,7 @@ examples:
     #include <dt-bindings/clock/tegra30-car.h>
     #include <dt-bindings/soc/tegra-pmc.h>
     sound {
-        compatible = "lge,tegra-audio-max98089-p895",
+        compatible = "lg,tegra-audio-max98089-p895",
                      "nvidia,tegra-audio-max98089";
         nvidia,model = "LG Optimus Vu MAX98089";
 
index ec4b0ac8ad68c0589f6ffc11127e89421ea41798..b8540b30741e322f3586f5fc8a8a415853c7bd8b 100644 (file)
@@ -11,12 +11,18 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,sc7280-lpass-rx-macro
-      - qcom,sm8250-lpass-rx-macro
-      - qcom,sm8450-lpass-rx-macro
-      - qcom,sm8550-lpass-rx-macro
-      - qcom,sc8280xp-lpass-rx-macro
+    oneOf:
+      - enum:
+          - qcom,sc7280-lpass-rx-macro
+          - qcom,sm8250-lpass-rx-macro
+          - qcom,sm8450-lpass-rx-macro
+          - qcom,sm8550-lpass-rx-macro
+          - qcom,sc8280xp-lpass-rx-macro
+      - items:
+          - enum:
+              - qcom,sm8650-lpass-rx-macro
+              - qcom,x1e80100-lpass-rx-macro
+          - const: qcom,sm8550-lpass-rx-macro
 
   reg:
     maxItems: 1
@@ -96,8 +102,9 @@ allOf:
   - if:
       properties:
         compatible:
-          enum:
-            - qcom,sm8550-lpass-rx-macro
+          contains:
+            enum:
+              - qcom,sm8550-lpass-rx-macro
     then:
       properties:
         clocks:
index 962701e9eb42a4dffe611d639143676e35f5f7ca..3e2ae16c6aba634bb0016ca932aedd820059dab3 100644 (file)
@@ -11,13 +11,19 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,sc7280-lpass-tx-macro
-      - qcom,sm6115-lpass-tx-macro
-      - qcom,sm8250-lpass-tx-macro
-      - qcom,sm8450-lpass-tx-macro
-      - qcom,sm8550-lpass-tx-macro
-      - qcom,sc8280xp-lpass-tx-macro
+    oneOf:
+      - enum:
+          - qcom,sc7280-lpass-tx-macro
+          - qcom,sm6115-lpass-tx-macro
+          - qcom,sm8250-lpass-tx-macro
+          - qcom,sm8450-lpass-tx-macro
+          - qcom,sm8550-lpass-tx-macro
+          - qcom,sc8280xp-lpass-tx-macro
+      - items:
+          - enum:
+              - qcom,sm8650-lpass-tx-macro
+              - qcom,x1e80100-lpass-tx-macro
+          - const: qcom,sm8550-lpass-tx-macro
 
   reg:
     maxItems: 1
@@ -118,8 +124,9 @@ allOf:
   - if:
       properties:
         compatible:
-          enum:
-            - qcom,sm8550-lpass-tx-macro
+          contains:
+            enum:
+              - qcom,sm8550-lpass-tx-macro
     then:
       properties:
         clocks:
index 4a56108c444b8ac52a4c3a16fa0ebbe36b4c94b6..6b483fa3c428e668862050c3d52ce8bed0e0a8dd 100644 (file)
@@ -11,12 +11,18 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,sc7280-lpass-va-macro
-      - qcom,sm8250-lpass-va-macro
-      - qcom,sm8450-lpass-va-macro
-      - qcom,sm8550-lpass-va-macro
-      - qcom,sc8280xp-lpass-va-macro
+    oneOf:
+      - enum:
+          - qcom,sc7280-lpass-va-macro
+          - qcom,sm8250-lpass-va-macro
+          - qcom,sm8450-lpass-va-macro
+          - qcom,sm8550-lpass-va-macro
+          - qcom,sc8280xp-lpass-va-macro
+      - items:
+          - enum:
+              - qcom,sm8650-lpass-va-macro
+              - qcom,x1e80100-lpass-va-macro
+          - const: qcom,sm8550-lpass-va-macro
 
   reg:
     maxItems: 1
index eea7609d1b33490cdb85a204145348109023d4ef..06b5f7be360829e6c666263e9560a7ff595688d5 100644 (file)
@@ -11,12 +11,18 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,sc7280-lpass-wsa-macro
-      - qcom,sm8250-lpass-wsa-macro
-      - qcom,sm8450-lpass-wsa-macro
-      - qcom,sm8550-lpass-wsa-macro
-      - qcom,sc8280xp-lpass-wsa-macro
+    oneOf:
+      - enum:
+          - qcom,sc7280-lpass-wsa-macro
+          - qcom,sm8250-lpass-wsa-macro
+          - qcom,sm8450-lpass-wsa-macro
+          - qcom,sm8550-lpass-wsa-macro
+          - qcom,sc8280xp-lpass-wsa-macro
+      - items:
+          - enum:
+              - qcom,sm8650-lpass-wsa-macro
+              - qcom,x1e80100-lpass-wsa-macro
+          - const: qcom,sm8550-lpass-wsa-macro
 
   reg:
     maxItems: 1
@@ -94,8 +100,9 @@ allOf:
   - if:
       properties:
         compatible:
-          enum:
-            - qcom,sm8550-lpass-wsa-macro
+          contains:
+            enum:
+              - qcom,sm8550-lpass-wsa-macro
     then:
       properties:
         clocks:
index e082a4fe095d01bab6aeb63289c78b3df7f0d41c..6f419747273e373e72223ebe7dbf76da0b00fccd 100644 (file)
@@ -21,6 +21,11 @@ properties:
               - lenovo,yoga-c630-sndcard
               - qcom,db845c-sndcard
           - const: qcom,sdm845-sndcard
+      - items:
+          - enum:
+              - qcom,sm8550-sndcard
+              - qcom,sm8650-sndcard
+          - const: qcom,sm8450-sndcard
       - enum:
           - qcom,apq8016-sbc-sndcard
           - qcom,msm8916-qdsp6-sndcard
@@ -30,6 +35,7 @@ properties:
           - qcom,sdm845-sndcard
           - qcom,sm8250-sndcard
           - qcom,sm8450-sndcard
+          - qcom,x1e80100-sndcard
 
   audio-routing:
     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
index 4df59f3b7b018c74ae59a96ca31dab940f8645d0..beb0ff0245b0ab84477b282243d9ce43c633c078 100644 (file)
@@ -201,9 +201,9 @@ examples:
   - |
     codec@1,0{
         compatible = "slim217,250";
-        reg  = <1 0>;
+        reg = <1 0>;
         reset-gpios = <&tlmm 64 0>;
-        slim-ifc-dev  = <&wcd9340_ifd>;
+        slim-ifc-dev = <&wcd9340_ifd>;
         #sound-dai-cells = <1>;
         interrupt-parent = <&tlmm>;
         interrupts = <54 4>;
index b430dd3e1841ac256c403e13b4135e02de531872..7b31bf93f1a193d36fd76b60ea788d265a1f7dfe 100644 (file)
@@ -51,7 +51,7 @@ examples:
         reg = <0x03210000 0x2000>;
         wcd938x_rx: codec@0,4 {
             compatible = "sdw20217010d00";
-            reg  = <0 4>;
+            reg = <0 4>;
             qcom,rx-port-mapping = <1 2 3 4 5>;
         };
     };
@@ -62,7 +62,7 @@ examples:
         reg = <0x03230000 0x2000>;
         wcd938x_tx: codec@0,3 {
             compatible = "sdw20217010d00";
-            reg  = <0 3>;
+            reg = <0 3>;
             qcom,tx-port-mapping = <2 3 4 5>;
         };
     };
index 018565793a3ec20e1afd0e061d0c98336895ea33..adbfa67f88ed93b99c28a0545e2c40eb2818fac2 100644 (file)
@@ -137,7 +137,7 @@ examples:
         reg = <0x03210000 0x2000>;
         wcd938x_rx: codec@0,4 {
             compatible = "sdw20217010d00";
-            reg  = <0 4>;
+            reg = <0 4>;
             qcom,rx-port-mapping = <1 2 3 4 5>;
         };
     };
@@ -148,7 +148,7 @@ examples:
         reg = <0x03230000 0x2000>;
         wcd938x_tx: codec@0,3 {
             compatible = "sdw20217010d00";
-            reg  = <0 3>;
+            reg = <0 3>;
             qcom,tx-port-mapping = <2 3 4 5>;
         };
     };
index ba572a7f4f3c0137eb0943448cef3d1af086a5e9..8e462cdf0018f376b074ac188c8b7b142f167d22 100644 (file)
@@ -52,7 +52,7 @@ examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
 
-    soundwire-controller@3250000 {
+    soundwire@3250000 {
         #address-cells = <2>;
         #size-cells = <0>;
         reg = <0x3250000 0x2000>;
index e6723c9e312a07470056cb38646a83192176a20e..d717017b0fdbc68fbabc1b7acd1364de0c4c8d4b 100644 (file)
@@ -48,7 +48,7 @@ examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
 
-    soundwire-controller {
+    soundwire {
         #address-cells = <2>;
         #size-cells = <0>;
 
index 13a5a0a10fe6cc2751bf2840ce31c95195331c12..0d7a6b576d8802e73b96bd3b209eb67f6e617b49 100644 (file)
@@ -9,20 +9,6 @@ title: Renesas R-Car Sound Driver
 maintainers:
   - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
 
-definitions:
-  port-def:
-    $ref: audio-graph-port.yaml#/definitions/port-base
-    unevaluatedProperties: false
-    patternProperties:
-      "^endpoint(@[0-9a-f]+)?":
-        $ref: audio-graph-port.yaml#/definitions/endpoint-base
-        properties:
-          playback:
-            $ref: /schemas/types.yaml#/definitions/phandle-array
-          capture:
-            $ref: /schemas/types.yaml#/definitions/phandle-array
-        unevaluatedProperties: false
-
 properties:
 
   compatible:
@@ -125,7 +111,17 @@ properties:
 
   # ports is below
   port:
-    $ref: "#/definitions/port-def"
+    $ref: audio-graph-port.yaml#/definitions/port-base
+    unevaluatedProperties: false
+    patternProperties:
+      "^endpoint(@[0-9a-f]+)?":
+        $ref: audio-graph-port.yaml#/definitions/endpoint-base
+        properties:
+          playback:
+            $ref: /schemas/types.yaml#/definitions/phandle-array
+          capture:
+            $ref: /schemas/types.yaml#/definitions/phandle-array
+        unevaluatedProperties: false
 
   rcar_sound,dvc:
     description: DVC subnode.
@@ -269,7 +265,7 @@ patternProperties:
     unevaluatedProperties: false
     patternProperties:
       '^port(@[0-9a-f]+)?$':
-        $ref: "#/definitions/port-def"
+        $ref: "#/properties/port"
 
 required:
   - compatible
@@ -501,19 +497,19 @@ examples:
         rcar_sound,dai {
             dai0 {
                 playback = <&ssi5>, <&src5>;
-                capture  = <&ssi6>;
+                capture = <&ssi6>;
             };
             dai1 {
                 playback = <&ssi3>;
             };
             dai2 {
-                capture  = <&ssi4>;
+                capture = <&ssi4>;
             };
             dai3 {
                 playback = <&ssi7>;
             };
             dai4 {
-                capture  = <&ssi8>;
+                capture = <&ssi8>;
             };
         };
 
@@ -527,7 +523,7 @@ examples:
                 frame-master = <&rsnd_endpoint0>;
 
                 playback = <&ssi0>, <&src0>, <&dvc0>;
-                capture  = <&ssi1>, <&src1>, <&dvc1>;
+                capture = <&ssi1>, <&src1>, <&dvc1>;
             };
         };
     };
index 3b5ae45eee4adc2319dd4bbfd77763a9cc99ac24..8b9695f5deccb99a4d1c2da7bc07b58ca00588da 100644 (file)
@@ -16,7 +16,7 @@ properties:
   compatible:
     items:
       - enum:
-          - renesas,r9a07g043-ssi  # RZ/G2UL
+          - renesas,r9a07g043-ssi  # RZ/G2UL and RZ/Five
           - renesas,r9a07g044-ssi  # RZ/G2{L,LC}
           - renesas,r9a07g054-ssi  # RZ/V2L
       - const: renesas,rz-ssi
index 30b3b6e9824b7e9324a01d3b4342b35e5b8d7635..f45f73b5056d110d8342d6a5f4b97f6b6286693a 100644 (file)
@@ -44,13 +44,18 @@ properties:
       frequencies supported by Exynos7 I2S and 7.1 channel TDM support
       for playback and capture TDM (Time division multiplexing) to allow
       transfer of multiple channel audio data on single data line.
-    enum:
-      - samsung,s3c6410-i2s
-      - samsung,s5pv210-i2s
-      - samsung,exynos5420-i2s
-      - samsung,exynos7-i2s
-      - samsung,exynos7-i2s1
-      - tesla,fsd-i2s
+    oneOf:
+      - enum:
+          - samsung,s3c6410-i2s
+          - samsung,s5pv210-i2s
+          - samsung,exynos5420-i2s
+          - samsung,exynos7-i2s
+          - samsung,exynos7-i2s1
+          - tesla,fsd-i2s
+      - items:
+          - enum:
+              - samsung,exynos5433-i2s
+          - const: samsung,exynos7-i2s
 
   '#address-cells':
     const: 1
index 3a941177f6840a41fe8bab6071f412a68ea42294..721950f65748b09602a062c4af8424f5bbe8dc77 100644 (file)
@@ -17,6 +17,13 @@ properties:
       pair of strings, the first being the connection's sink, the second
       being the connection's source.
 
+  ignore-suspend-widgets:
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+    description: |
+      A list of audio sound widgets which are marked ignoring system suspend.
+      Paths between these endpoints are still active over suspend of the main
+      application processor that the current operating system is running.
+
   model:
     $ref: /schemas/types.yaml#/definitions/string
     description: User specified audio sound card name
index f01c0dde0cf740e6ff9d500ddedb1e27d320f919..d28c102c0ce7f0fe94577e45b54daa7496331e7f 100644 (file)
@@ -18,7 +18,6 @@ description: |
 
   Specifications about the audio amplifier can be found at:
     https://www.ti.com/lit/gpn/tas2562
-    https://www.ti.com/lit/gpn/tas2563
     https://www.ti.com/lit/gpn/tas2564
     https://www.ti.com/lit/gpn/tas2110
 
@@ -29,7 +28,6 @@ properties:
   compatible:
     enum:
       - ti,tas2562
-      - ti,tas2563
       - ti,tas2564
       - ti,tas2110
 
index a69e6c223308e637de51d512cb18f210441dcc9e..9762386892495149c00259c59be3e04a3a09d2c6 100644 (file)
@@ -5,36 +5,46 @@
 $id: http://devicetree.org/schemas/sound/ti,tas2781.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Texas Instruments TAS2781 SmartAMP
+title: Texas Instruments TAS2563/TAS2781 SmartAMP
 
 maintainers:
   - Shenghao Ding <shenghao-ding@ti.com>
 
-description:
-  The TAS2781 is a mono, digital input Class-D audio amplifier
-  optimized for efficiently driving high peak power into small
-  loudspeakers. An integrated on-chip DSP supports Texas Instruments
-  Smart Amp speaker protection algorithm. The integrated speaker
-  voltage and current sense provides for real time
+description: |
+  The TAS2563/TAS2781 is a mono, digital input Class-D audio
+  amplifier optimized for efficiently driving high peak power into
+  small loudspeakers. An integrated on-chip DSP supports Texas
+  Instruments Smart Amp speaker protection algorithm. The
+  integrated speaker voltage and current sense provides for real time
   monitoring of loudspeaker behavior.
 
-allOf:
-  - $ref: dai-common.yaml#
+  Specifications about the audio amplifier can be found at:
+    https://www.ti.com/lit/gpn/tas2563
+    https://www.ti.com/lit/gpn/tas2781
 
 properties:
   compatible:
-    enum:
-      - ti,tas2781
+    description: |
+      ti,tas2563: 6.1-W Boosted Class-D Audio Amplifier With Integrated
+      DSP and IV Sense, 16/20/24/32bit stereo I2S or multichannel TDM.
+
+      ti,tas2781: 24-V Class-D Amplifier with Real Time Integrated Speaker
+      Protection and Audio Processing, 16/20/24/32bit stereo I2S or
+      multichannel TDM.
+    oneOf:
+      - items:
+          - enum:
+              - ti,tas2563
+          - const: ti,tas2781
+      - enum:
+          - ti,tas2781
 
   reg:
     description:
-      I2C address, in multiple tas2781s case, all the i2c address
+      I2C address, in multiple-AMP case, all the i2c address
       aggregate as one Audio Device to support multiple audio slots.
     maxItems: 8
     minItems: 1
-    items:
-      minimum: 0x38
-      maximum: 0x3f
 
   reset-gpios:
     maxItems: 1
@@ -49,6 +59,44 @@ required:
   - compatible
   - reg
 
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,tas2563
+    then:
+      properties:
+        reg:
+          description:
+            I2C address, in multiple-AMP case, all the i2c address
+            aggregate as one Audio Device to support multiple audio slots.
+          maxItems: 4
+          minItems: 1
+          items:
+            minimum: 0x4c
+            maximum: 0x4f
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,tas2781
+    then:
+      properties:
+        reg:
+          description:
+            I2C address, in multiple-AMP case, all the i2c address
+            aggregate as one Audio Device to support multiple audio slots.
+          maxItems: 8
+          minItems: 1
+          items:
+            minimum: 0x38
+            maximum: 0x3f
+
 additionalProperties: false
 
 examples:
index a7cc9aa344684877ea899bfefeeccbca9ad95b29..4783e6dbb5c4719fe51b6b55dcabc156335e6d94 100644 (file)
@@ -90,7 +90,7 @@ examples:
         ldoin-supply = <&reg_3v3>;
         clocks = <&clks 201>;
         clock-names = "mclk";
-        aic32x4-gpio-func= <
+        aic32x4-gpio-func = <
           0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
           0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
           0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
diff --git a/Bindings/spi/adi,axi-spi-engine.txt b/Bindings/spi/adi,axi-spi-engine.txt
deleted file mode 100644 (file)
index 8a18d71..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Analog Devices AXI SPI Engine controller Device Tree Bindings
-
-Required properties:
-- compatible           : Must be "adi,axi-spi-engine-1.00.a""
-- reg                  : Physical base address and size of the register map.
-- interrupts           : Property with a value describing the interrupt
-                         number.
-- clock-names          : List of input clock names - "s_axi_aclk", "spi_clk"
-- clocks               : Clock phandles and specifiers (See clock bindings for
-                         details on clock-names and clocks).
-- #address-cells       : Must be <1>
-- #size-cells          : Must be <0>
-
-Optional subnodes:
-       Subnodes are use to represent the SPI slave devices connected to the SPI
-       master. They follow the generic SPI bindings as outlined in spi-bus.txt.
-
-Example:
-
-    spi@@44a00000 {
-               compatible = "adi,axi-spi-engine-1.00.a";
-               reg = <0x44a00000 0x1000>;
-               interrupts = <0 56 4>;
-               clocks = <&clkc 15 &clkc 15>;
-               clock-names = "s_axi_aclk", "spi_clk";
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               /* SPI devices */
-    };
diff --git a/Bindings/spi/adi,axi-spi-engine.yaml b/Bindings/spi/adi,axi-spi-engine.yaml
new file mode 100644 (file)
index 0000000..d48faa4
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/adi,axi-spi-engine.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AXI SPI Engine Controller
+
+description: |
+  The AXI SPI Engine controller is part of the SPI Engine framework[1] and
+  allows memory mapped access to the SPI Engine control bus. This allows it
+  to be used as a general purpose software driven SPI controller as well as
+  some optional advanced acceleration and offloading capabilities.
+
+  [1] https://wiki.analog.com/resources/fpga/peripherals/spi_engine
+
+maintainers:
+  - Michael Hennerich <Michael.Hennerich@analog.com>
+  - Nuno Sá <nuno.sa@analog.com>
+
+allOf:
+  - $ref: /schemas/spi/spi-controller.yaml#
+
+properties:
+  compatible:
+    const: adi,axi-spi-engine-1.00.a
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: The AXI interconnect clock.
+      - description: The SPI controller clock.
+
+  clock-names:
+    items:
+      - const: s_axi_aclk
+      - const: spi_clk
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi@44a00000 {
+        compatible = "adi,axi-spi-engine-1.00.a";
+        reg = <0x44a00000 0x1000>;
+        interrupts = <0 56 4>;
+        clocks = <&clkc 15>, <&clkc 15>;
+        clock-names = "s_axi_aclk", "spi_clk";
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        /* SPI devices */
+    };
index 4d8ec69214c971e9c8bf43d05a809bb00bccfa13..0ef3f8421986988462b68edb3a3bd860ffbdd02e 100644 (file)
@@ -21,7 +21,7 @@ properties:
           - enum:
               - renesas,rspi-r7s72100  # RZ/A1H
               - renesas,rspi-r7s9210   # RZ/A2
-              - renesas,r9a07g043-rspi # RZ/G2UL
+              - renesas,r9a07g043-rspi # RZ/G2UL and RZ/Five
               - renesas,r9a07g044-rspi # RZ/G2{L,LC}
               - renesas,r9a07g054-rspi # RZ/V2L
           - const: renesas,rspi-rz
index 6348a387a21c317dcadb40d2739344569d08bdc1..fde3776a558bcddd267d3b5f93ce56cba64ee285 100644 (file)
@@ -72,8 +72,6 @@ properties:
           - const: snps,dw-apb-ssi
       - description: Intel Keem Bay SPI Controller
         const: intel,keembay-ssi
-      - description: Intel Thunder Bay SPI Controller
-        const: intel,thunderbay-ssi
       - description: Intel Mount Evans Integrated Management Complex SPI Controller
         const: intel,mountevans-imc-ssi
       - description: AMD Pensando Elba SoC SPI Controller
index ae0f082bd3772f6b7a13bba1a939b878964c16d3..4bd9aeb8120859152de1eeb93acf96874a0e27c9 100644 (file)
@@ -23,7 +23,9 @@ properties:
   compatible:
     enum:
       - st,stm32f4-spi
+      - st,stm32f7-spi
       - st,stm32h7-spi
+      - st,stm32mp25-spi
 
   reg:
     maxItems: 1
index fbd4212285e285efc751ac1f209d2671eaa0b3be..9b2272a9ec15d89122c3540b7088c91198a81e5d 100644 (file)
@@ -16,6 +16,7 @@ properties:
       - allwinner,sun8i-a83t-ths
       - allwinner,sun8i-h3-ths
       - allwinner,sun8i-r40-ths
+      - allwinner,sun20i-d1-ths
       - allwinner,sun50i-a64-ths
       - allwinner,sun50i-a100-ths
       - allwinner,sun50i-h5-ths
@@ -61,6 +62,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - allwinner,sun20i-d1-ths
               - allwinner,sun50i-a100-ths
               - allwinner,sun50i-h6-ths
 
@@ -84,7 +86,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: allwinner,sun8i-h3-ths
+            enum:
+              - allwinner,sun8i-h3-ths
+              - allwinner,sun20i-d1-ths
 
     then:
       properties:
@@ -103,6 +107,7 @@ allOf:
             enum:
               - allwinner,sun8i-h3-ths
               - allwinner,sun8i-r40-ths
+              - allwinner,sun20i-d1-ths
               - allwinner,sun50i-a64-ths
               - allwinner,sun50i-a100-ths
               - allwinner,sun50i-h5-ths
index 7538469997f9e1b11142d9f26ab77a3f7d542c76..b634f57cd011d738fc0dd4db633a9a805506cca5 100644 (file)
@@ -10,6 +10,9 @@ maintainers:
   - zhanghongchen <zhanghongchen@loongson.cn>
   - Yinbo Zhu <zhuyinbo@loongson.cn>
 
+allOf:
+  - $ref: /schemas/thermal/thermal-sensor.yaml#
+
 properties:
   compatible:
     oneOf:
@@ -26,12 +29,16 @@ properties:
   interrupts:
     maxItems: 1
 
+  '#thermal-sensor-cells':
+    const: 1
+
 required:
   - compatible
   - reg
   - interrupts
+  - '#thermal-sensor-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -41,4 +48,5 @@ examples:
         reg = <0x1fe01500 0x30>;
         interrupt-parent = <&liointc0>;
         interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+        #thermal-sensor-cells = <1>;
     };
diff --git a/Bindings/thermal/mediatek,thermal.yaml b/Bindings/thermal/mediatek,thermal.yaml
new file mode 100644 (file)
index 0000000..d96a2e3
--- /dev/null
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/mediatek,thermal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mediatek thermal controller for on-SoC temperatures
+
+maintainers:
+  - Sascha Hauer <s.hauer@pengutronix.de>
+
+description:
+  This device does not have its own ADC, instead it directly controls the AUXADC
+  via AHB bus accesses. For this reason it needs phandles to the AUXADC. Also it
+  controls a mux in the apmixedsys register space via AHB bus accesses, so a
+  phandle to the APMIXEDSYS is also needed.
+
+allOf:
+  - $ref: thermal-sensor.yaml#
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt2701-thermal
+      - mediatek,mt2712-thermal
+      - mediatek,mt7622-thermal
+      - mediatek,mt7981-thermal
+      - mediatek,mt7986-thermal
+      - mediatek,mt8173-thermal
+      - mediatek,mt8183-thermal
+      - mediatek,mt8365-thermal
+      - mediatek,mt8516-thermal
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Main clock needed for register access
+      - description: The AUXADC clock
+
+  clock-names:
+    items:
+      - const: therm
+      - const: auxadc
+
+  mediatek,auxadc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: A phandle to the AUXADC which the thermal controller uses
+
+  mediatek,apmixedsys:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: A phandle to the APMIXEDSYS controller
+
+  resets:
+    description: Reset controller controlling the thermal controller
+
+  nvmem-cells:
+    items:
+      - description:
+          NVMEM cell with EEPROMA phandle to the calibration data provided by an
+          NVMEM device. If unspecified default values shall be used.
+
+  nvmem-cell-names:
+    items:
+      - const: calibration-data
+
+required:
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - mediatek,auxadc
+  - mediatek,apmixedsys
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/mt8173-clk.h>
+    #include <dt-bindings/reset/mt8173-resets.h>
+
+    thermal@1100b000 {
+        compatible = "mediatek,mt8173-thermal";
+        reg = <0x1100b000 0x1000>;
+        interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
+        clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
+        clock-names = "therm", "auxadc";
+        resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
+        mediatek,auxadc = <&auxadc>;
+        mediatek,apmixedsys = <&apmixedsys>;
+        nvmem-cells = <&thermal_calibration_data>;
+        nvmem-cell-names = "calibration-data";
+        #thermal-sensor-cells = <1>;
+    };
diff --git a/Bindings/thermal/mediatek-thermal.txt b/Bindings/thermal/mediatek-thermal.txt
deleted file mode 100644 (file)
index ac39c71..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-* Mediatek Thermal
-
-This describes the device tree binding for the Mediatek thermal controller
-which measures the on-SoC temperatures. This device does not have its own ADC,
-instead it directly controls the AUXADC via AHB bus accesses. For this reason
-this device needs phandles to the AUXADC. Also it controls a mux in the
-apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS
-is also needed.
-
-Required properties:
-- compatible:
-  - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
-  - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
-  - "mediatek,mt2712-thermal" : For MT2712 family of SoCs
-  - "mediatek,mt7622-thermal" : For MT7622 SoC
-  - "mediatek,mt7981-thermal", "mediatek,mt7986-thermal" : For MT7981 SoC
-  - "mediatek,mt7986-thermal" : For MT7986 SoC
-  - "mediatek,mt8183-thermal" : For MT8183 family of SoCs
-  - "mediatek,mt8365-thermal" : For MT8365 family of SoCs
-  - "mediatek,mt8516-thermal", "mediatek,mt2701-thermal : For MT8516 family of SoCs
-- reg: Address range of the thermal controller
-- interrupts: IRQ for the thermal controller
-- clocks, clock-names: Clocks needed for the thermal controller. required
-                       clocks are:
-                      "therm":  Main clock needed for register access
-                      "auxadc": The AUXADC clock
-- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses
-- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller.
-- #thermal-sensor-cells : Should be 0. See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for a description.
-
-Optional properties:
-- resets: Reference to the reset controller controlling the thermal controller.
-- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If
-               unspecified default values shall be used.
-- nvmem-cell-names: Should be "calibration-data"
-
-Example:
-
-       thermal: thermal@1100b000 {
-               #thermal-sensor-cells = <1>;
-               compatible = "mediatek,mt8173-thermal";
-               reg = <0 0x1100b000 0 0x1000>;
-               interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
-               clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
-               clock-names = "therm", "auxadc";
-               resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
-               reset-names = "therm";
-               mediatek,auxadc = <&auxadc>;
-               mediatek,apmixedsys = <&apmixedsys>;
-               nvmem-cells = <&thermal_calibration_data>;
-               nvmem-cell-names = "calibration-data";
-       };
index 01253d58bf9fa38fd335ed76705eaecd9aa7fe50..7541e27704cad6ffc8199c5e8a110254759a39e6 100644 (file)
@@ -114,12 +114,14 @@ examples:
   - |
     #include <dt-bindings/iio/qcom,spmi-vadc.h>
     #include <dt-bindings/interrupt-controller/irq.h>
-    spmi_bus {
+
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
+
         pm8998_adc: adc@3100 {
-            reg = <0x3100>;
             compatible = "qcom,spmi-adc-rev2";
+            reg = <0x3100>;
             #address-cells = <1>;
             #size-cells = <0>;
             #io-channel-cells = <1>;
@@ -130,7 +132,7 @@ examples:
             };
         };
 
-        pm8998_adc_tm: adc-tm@3400 {
+        adc-tm@3400 {
             compatible = "qcom,spmi-adc-tm-hc";
             reg = <0x3400>;
             interrupts = <0x2 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
index 3c81def03c84c7787a4557b2bdadda2e0a27ce9a..d9d2657287cb48e6cb9a1ee13bc4152a33338c75 100644 (file)
@@ -167,12 +167,14 @@ examples:
   - |
     #include <dt-bindings/iio/qcom,spmi-vadc.h>
     #include <dt-bindings/interrupt-controller/irq.h>
-    spmi_bus {
+
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
+
         pm8150b_adc: adc@3100 {
-            reg = <0x3100>;
             compatible = "qcom,spmi-adc5";
+            reg = <0x3100>;
             #address-cells = <1>;
             #size-cells = <0>;
             #io-channel-cells = <1>;
@@ -186,7 +188,7 @@ examples:
             };
         };
 
-        pm8150b_adc_tm: adc-tm@3500 {
+        adc-tm@3500 {
             compatible = "qcom,spmi-adc-tm5";
             reg = <0x3500>;
             interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
@@ -207,12 +209,14 @@ examples:
     #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
     #include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
     #include <dt-bindings/interrupt-controller/irq.h>
-    spmi_bus {
+
+    pmic {
         #address-cells = <1>;
         #size-cells = <0>;
+
         pmk8350_vadc: adc@3100 {
-            reg = <0x3100>;
             compatible = "qcom,spmi-adc7";
+            reg = <0x3100>;
             #address-cells = <1>;
             #size-cells = <0>;
             #io-channel-cells = <1>;
@@ -233,7 +237,7 @@ examples:
             };
         };
 
-        pmk8350_adc_tm: adc-tm@3400 {
+        adc-tm@3400 {
             compatible = "qcom,spmi-adc-tm5-gen2";
             reg = <0x3400>;
             interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
index 437b74732886fe998cc7e4855d9ea0f20f5ecbeb..99d9c526c0b6b4a02ecabc322d6eda4c88069d06 100644 (file)
@@ -66,6 +66,7 @@ properties:
               - qcom,sm8350-tsens
               - qcom,sm8450-tsens
               - qcom,sm8550-tsens
+              - qcom,sm8650-tsens
           - const: qcom,tsens-v2
 
       - description: v2 of TSENS with combined interrupt
index 4a8dabc481700e5816b8cffc93a39d88840d42d4..dbd52620d293060f59432ac5e3df2b6d8d23a542 100644 (file)
@@ -75,6 +75,22 @@ patternProperties:
           framework and assumes that the thermal sensors in this zone
           support interrupts.
 
+      critical-action:
+        $ref: /schemas/types.yaml#/definitions/string
+        description: |
+          The action the OS should perform after the critical temperature is reached.
+          By default the system will shutdown as a safe action to prevent damage
+          to the hardware, if the property is not set.
+          The shutdown action should be always the default and preferred one.
+          Choose 'reboot' with care, as the hardware may be in thermal stress,
+          thus leading to infinite reboots that may cause damage to the hardware.
+          Make sure the firmware/bootloader will act as the last resort and take
+          over the thermal control.
+
+        enum:
+          - shutdown
+          - reboot
+
       thermal-sensors:
         $ref: /schemas/types.yaml#/definitions/phandle-array
         maxItems: 1
index e8be6c4703640f7c877d4e98139692224fa8185c..fced6f2d8ecbb35955e3800f19d58980b792a764 100644 (file)
@@ -33,11 +33,13 @@ properties:
               - sifive,fu540-c000-clint # SiFive FU540
               - starfive,jh7100-clint   # StarFive JH7100
               - starfive,jh7110-clint   # StarFive JH7110
+              - starfive,jh8100-clint   # StarFive JH8100
           - const: sifive,clint0        # SiFive CLINT v0 IP block
       - items:
           - enum:
               - allwinner,sun20i-d1-clint
               - sophgo,cv1800b-clint
+              - sophgo,cv1812h-clint
               - thead,th1520-clint
           - const: thead,c900-clint
       - items:
index fbd235650e52cca3dc3e43792e0c730aab65699c..2e92bcdeb423abeca98da6868d5a116615c13bbc 100644 (file)
@@ -17,7 +17,12 @@ properties:
       - const: thead,c900-aclint-mtimer
 
   reg:
-    maxItems: 1
+    items:
+      - description: MTIMECMP Registers
+
+  reg-names:
+    items:
+      - const: mtimecmp
 
   interrupts-extended:
     minItems: 1
@@ -28,6 +33,7 @@ additionalProperties: false
 required:
   - compatible
   - reg
+  - reg-names
   - interrupts-extended
 
 examples:
@@ -39,5 +45,6 @@ examples:
                             <&cpu3intc 7>,
                             <&cpu4intc 7>;
       reg = <0xac000000 0x00010000>;
+      reg-names = "mtimecmp";
     };
 ...
diff --git a/Bindings/tpm/google,cr50.yaml b/Bindings/tpm/google,cr50.yaml
new file mode 100644 (file)
index 0000000..9302e12
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/google,cr50.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Security Chip H1 (running Cr50 firmware)
+
+maintainers:
+  - Andrey Pronin <apronin@chromium.org>
+
+description: |
+  Google has designed a family of security chips called "Titan".
+  One member is the H1 built into Chromebooks and running Cr50 firmware:
+  https://www.osfc.io/2018/talks/google-secure-microcontroller-and-ccd-closed-case-debugging/
+
+  The chip provides several functions, including TPM 2.0 like functionality.
+  It communicates over SPI or I²C using the FIFO protocol described in the
+  TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP), sec 6:
+  https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
+
+properties:
+  compatible:
+    const: google,cr50
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+anyOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - $ref: tcg,tpm-tis-i2c.yaml#/properties/reg
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@0 {
+            reg = <0>;
+            compatible = "google,cr50";
+            spi-max-frequency = <800000>;
+        };
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@50 {
+            compatible = "google,cr50";
+            reg = <0x50>;
+            interrupts-extended = <&pio 88 IRQ_TYPE_EDGE_FALLING>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&cr50_int>;
+        };
+    };
diff --git a/Bindings/tpm/ibm,vtpm.yaml b/Bindings/tpm/ibm,vtpm.yaml
new file mode 100644 (file)
index 0000000..50a3fd3
--- /dev/null
@@ -0,0 +1,104 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM Virtual Trusted Platform Module (vTPM)
+
+maintainers:
+  - Nayna Jain <nayna@linux.ibm.com>
+
+description: |
+  Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
+  It is supported through the adjunct partition with firmware release 740
+  or higher.  With vTPM support, each lpar is able to have its own vTPM
+  without the physical TPM hardware.  The TPM functionality is provided by
+  communicating with the vTPM adjunct partition through Hypervisor calls
+  (Hcalls) and Command/Response Queue (CRQ) commands.
+
+properties:
+  compatible:
+    enum:
+      - IBM,vtpm
+      - IBM,vtpm20
+
+  device_type:
+    description:
+      type of virtual device
+    enum:
+      - IBM,vtpm
+      - IBM,vtpm20
+
+  reg:
+    maxItems: 1
+
+  'ibm,#dma-address-cells':
+    description:
+      number of cells that are used to encode the physical address field of
+      dma-window properties
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  'ibm,#dma-size-cells':
+    description:
+      number of cells that are used to encode the size field of
+      dma-window properties
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  ibm,my-dma-window:
+    description:
+      DMA window associated with this virtual I/O Adapter
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  ibm,my-drc-index:
+    description:
+      integer index for the connector between the device and its parent;
+      present only if Dynamic Reconfiguration (DR) Connector is enabled
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  ibm,loc-code:
+    description:
+      unique and persistent location code associated with this virtual
+      I/O Adapter
+    $ref: /schemas/types.yaml#/definitions/string
+
+required:
+  - compatible
+  - device_type
+  - reg
+  - interrupts
+  - ibm,#dma-address-cells
+  - ibm,#dma-size-cells
+  - ibm,my-dma-window
+  - ibm,my-drc-index
+  - ibm,loc-code
+  - linux,sml-base
+  - linux,sml-size
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@30000003 {
+            compatible = "IBM,vtpm";
+            device_type = "IBM,vtpm";
+            reg = <0x30000003>;
+            interrupts = <0xa0003 0x0>;
+            ibm,#dma-address-cells = <0x2>;
+            ibm,#dma-size-cells = <0x2>;
+            ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
+            ibm,my-drc-index = <0x30000003>;
+            ibm,loc-code = "U8286.41A.10082DV-V3-C3";
+            linux,sml-base = <0xc60e 0x0>;
+            linux,sml-size = <0xbce10200>;
+        };
+    };
diff --git a/Bindings/tpm/microsoft,ftpm.yaml b/Bindings/tpm/microsoft,ftpm.yaml
new file mode 100644 (file)
index 0000000..fdb8196
--- /dev/null
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/microsoft,ftpm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microsoft firmware-based Trusted Platform Module (fTPM)
+
+maintainers:
+  - Thirupathaiah Annapureddy <thiruan@microsoft.com>
+  - Sasha Levin <sashal@kernel.org>
+
+description: |
+  Commodity CPU architectures, such as ARM and Intel CPUs, have started to
+  offer trusted computing features in their CPUs aimed at displacing dedicated
+  trusted hardware.  Unfortunately, these CPU architectures raise serious
+  challenges to building trusted systems because they omit providing secure
+  resources outside the CPU perimeter.
+
+  Microsoft's firmware-based TPM 2.0 (fTPM) leverages ARM TrustZone to overcome
+  these challenges and provide software with security guarantees similar to
+  those of dedicated trusted hardware.
+
+  https://www.microsoft.com/en-us/research/publication/ftpm-software-implementation-tpm-chip/
+  https://github.com/Microsoft/ms-tpm-20-ref/tree/main/Samples/ARM32-FirmwareTPM
+
+properties:
+  compatible:
+    const: microsoft,ftpm
+
+required:
+  - compatible
+  - linux,sml-base
+  - linux,sml-size
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    tpm {
+        compatible = "microsoft,ftpm";
+        linux,sml-base = <0x0 0xc0000000>;
+        linux,sml-size = <0x10000>;
+    };
diff --git a/Bindings/tpm/tcg,tpm-tis-i2c.yaml b/Bindings/tpm/tcg,tpm-tis-i2c.yaml
new file mode 100644 (file)
index 0000000..3ab4434
--- /dev/null
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: I²C-attached Trusted Platform Module conforming to TCG TIS specification
+
+maintainers:
+  - Lukas Wunner <lukas@wunner.de>
+
+description: |
+  The Trusted Computing Group (TCG) has defined a multi-vendor standard
+  for accessing a TPM chip.  It can be transported over various buses,
+  one of them being I²C.  The standard is named:
+  TCG PC Client Specific TPM Interface Specification (TIS)
+  https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/
+
+  The I²C interface was not originally part of the standard, but added
+  in 2017 with a separate document:
+  TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP)
+  https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
+
+  Recent TPM 2.0 chips conform to this generic interface, others use a
+  vendor-specific I²C interface.
+
+properties:
+  compatible:
+    oneOf:
+      - description: Generic TPM 2.0 chips conforming to TCG PTP interface
+        items:
+          - enum:
+              - infineon,slb9673
+              - nuvoton,npct75x
+          - const: tcg,tpm-tis-i2c
+
+      - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
+        items:
+          - enum:
+              - atmel,at97sc3204t # TPM 1.2
+              - infineon,slb9635tt # TPM 1.2 (maximum 100 kHz)
+              - infineon,slb9645tt # TPM 1.2 (maximum 400 kHz)
+              - infineon,tpm_i2c_infineon # TPM 1.2
+              - nuvoton,npct501 # TPM 1.2
+              - nuvoton,npct601 # TPM 2.0
+              - st,st33zp24-i2c # TPM 2.0
+              - winbond,wpct301 # TPM 1.2
+
+  reg:
+    description: address of TPM on the I²C bus
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@57 {
+            label = "tpm";
+            compatible = "nuvoton,npct601";
+            reg = <0x57>;
+            linux,sml-base = <0x7f 0xfd450000>;
+            linux,sml-size = <0x10000>;
+        };
+    };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@13 {
+            reg = <0x13>;
+            compatible = "st,st33zp24-i2c";
+            interrupt-parent = <&gpio5>;
+            interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+            lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+        };
+    };
diff --git a/Bindings/tpm/tcg,tpm-tis-mmio.yaml b/Bindings/tpm/tcg,tpm-tis-mmio.yaml
new file mode 100644 (file)
index 0000000..87bce06
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-mmio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MMIO-accessed Trusted Platform Module conforming to TCG TIS specification
+
+maintainers:
+  - Lukas Wunner <lukas@wunner.de>
+
+description: |
+  The Trusted Computing Group (TCG) has defined a multi-vendor standard
+  for accessing a TPM chip.  It can be transported over various buses,
+  one of them being LPC (via MMIO).  The standard is named:
+  TCG PC Client Specific TPM Interface Specification (TIS)
+  https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - at97sc3201
+          - atmel,at97sc3204
+          - socionext,synquacer-tpm-mmio
+      - const: tcg,tpm-tis-mmio
+
+  reg:
+    description:
+      location and length of the MMIO registers, length should be
+      at least 0x5000 bytes
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    tpm@90000 {
+        compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
+        reg = <0x90000 0x5000>;
+        interrupt-parent = <&EIC0>;
+        interrupts = <1 2>;
+    };
diff --git a/Bindings/tpm/tcg,tpm_tis-spi.yaml b/Bindings/tpm/tcg,tpm_tis-spi.yaml
new file mode 100644 (file)
index 0000000..c3413b4
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/tcg,tpm_tis-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SPI-attached Trusted Platform Module conforming to TCG TIS specification
+
+maintainers:
+  - Lukas Wunner <lukas@wunner.de>
+
+description: |
+  The Trusted Computing Group (TCG) has defined a multi-vendor standard
+  for accessing a TPM chip.  It can be transported over various buses,
+  one of them being SPI.  The standard is named:
+  TCG PC Client Specific TPM Interface Specification (TIS)
+  https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - infineon,slb9670
+          - st,st33htpm-spi
+          - st,st33zp24-spi
+      - const: tcg,tpm_tis-spi
+
+allOf:
+  - $ref: tpm-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: st,st33zp24-spi
+    then:
+      properties:
+        spi-max-frequency:
+          maximum: 10000000
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@0 {
+            reg = <0>;
+            compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+            spi-max-frequency = <10000000>;
+        };
+    };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tpm@0 {
+            reg = <0>;
+            compatible = "st,st33zp24-spi", "tcg,tpm_tis-spi";
+            spi-max-frequency = <10000000>;
+            interrupt-parent = <&gpio5>;
+            interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+            lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+        };
+    };
diff --git a/Bindings/tpm/tpm-common.yaml b/Bindings/tpm/tpm-common.yaml
new file mode 100644 (file)
index 0000000..3c1241b
--- /dev/null
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/tpm-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Trusted Platform Module common properties
+
+maintainers:
+  - Lukas Wunner <lukas@wunner.de>
+
+properties:
+  $nodename:
+    pattern: '^tpm(@[0-9a-f]+)?$'
+
+  interrupts:
+    description: indicates command completion
+    maxItems: 1
+
+  label:
+    description: human readable string describing the device, e.g. "tpm"
+
+  linux,sml-base:
+    description:
+      base address of reserved memory allocated for firmware event log
+    $ref: /schemas/types.yaml#/definitions/uint64
+
+  linux,sml-size:
+    description:
+      size of reserved memory allocated for firmware event log
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  memory-region:
+    description: reserved memory allocated for firmware event log
+    maxItems: 1
+
+  powered-while-suspended:
+    description:
+      present when the TPM is left powered on between suspend and resume
+      (makes the suspend/resume callbacks do nothing)
+    type: boolean
+
+  resets:
+    description: Reset controller to reset the TPM
+    maxItems: 1
+
+  reset-gpios:
+    description: Output GPIO pin to reset the TPM
+    maxItems: 1
+
+# must always have both linux,sml-base and linux,sml-size
+dependentRequired:
+  linux,sml-base: ['linux,sml-size']
+  linux,sml-size: ['linux,sml-base']
+
+# must only have either memory-region or linux,sml-base
+# as well as either resets or reset-gpios
+dependentSchemas:
+  memory-region:
+    properties:
+      linux,sml-base: false
+  linux,sml-base:
+    properties:
+      memory-region: false
+  resets:
+    properties:
+      reset-gpios: false
+  reset-gpios:
+    properties:
+      resets: false
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            pattern: '^st,st33zp24'
+    then:
+      properties:
+        lpcpd-gpios:
+          description:
+            Output GPIO pin used for ST33ZP24 power management of D1/D2 state.
+            If set, power must be present when the platform is going into
+            sleep/hibernate mode.
+          maxItems: 1
+
+additionalProperties: true
index c3190f2a168a22b1d8cf9c79b0b1de45d7029a09..79dcd92c4a43452e4e92f943add7638b45a45f21 100644 (file)
@@ -49,8 +49,6 @@ properties:
           - ams,iaq-core
             # i2c serial eeprom (24cxx)
           - at,24c08
-            # i2c trusted platform module (TPM)
-          - atmel,at97sc3204t
             # ATSHA204 - i2c h/w symmetric crypto module
           - atmel,atsha204
             # ATSHA204A - i2c h/w symmetric crypto module
@@ -117,6 +115,10 @@ properties:
           - fsl,mpl3115
             # MPR121: Proximity Capacitive Touch Sensor Controller
           - fsl,mpr121
+            # Monolithic Power Systems Inc. multi-phase controller mp2856
+          - mps,mp2856
+            # Monolithic Power Systems Inc. multi-phase controller mp2857
+          - mps,mp2857
             # Monolithic Power Systems Inc. multi-phase controller mp2888
           - mps,mp2888
             # Monolithic Power Systems Inc. multi-phase controller mp2971
@@ -125,6 +127,8 @@ properties:
           - mps,mp2973
             # Monolithic Power Systems Inc. multi-phase controller mp2975
           - mps,mp2975
+            # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5990
+          - mps,mp5990
             # Honeywell Humidicon HIH-6130 humidity/temperature sensor
           - honeywell,hi6130
             # IBM Common Form Factor Power Supply Versions (all versions)
@@ -145,12 +149,6 @@ properties:
           - infineon,ir38263
             # Infineon IRPS5401 Voltage Regulator (PMIC)
           - infineon,irps5401
-            # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
-          - infineon,slb9635tt
-            # Infineon SLB9645 I2C TPM (new protocol, max 400khz)
-          - infineon,slb9645tt
-            # Infineon SLB9673 I2C TPM 2.0
-          - infineon,slb9673
             # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
           - infineon,tlv493d-a1b6
             # Infineon Multi-phase Digital VR Controller xdpe11280
@@ -179,6 +177,8 @@ properties:
           - isil,isl29030
             # Intersil ISL68137 Digital Output Configurable PWM Controller
           - isil,isl68137
+            # Intersil ISL76682 Ambient Light Sensor
+          - isil,isl76682
             # Linear Technology LTC2488
           - lineartechnology,ltc2488
             # 5 Bit Programmable, Pulse-Width Modulator
@@ -301,10 +301,6 @@ properties:
           - national,lm85
             # I2C ±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal Window Comparator
           - national,lm92
-            # i2c trusted platform module (TPM)
-          - nuvoton,npct501
-            # i2c trusted platform module (TPM2)
-          - nuvoton,npct601
             # Nuvoton Temperature Sensor
           - nuvoton,w83773g
             # OKI ML86V7667 video decoder
@@ -349,8 +345,6 @@ properties:
           - silabs,si7020
             # Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply
           - skyworks,sky81452
-            # Socionext SynQuacer TPM MMIO module
-          - socionext,synquacer-tpm-mmio
             # SparkFun Qwiic Joystick (COM-15168) with i2c interface
           - sparkfun,qwiic-joystick
             # i2c serial eeprom (24cxx)
@@ -405,8 +399,6 @@ properties:
           - winbond,w83793
             # Vicor Corporation Digital Supervisor
           - vicor,pli1209bc
-            # i2c trusted platform module (TPM)
-          - winbond,wpct301
 
 required:
   - compatible
index 2cf3d016db42c11d6b9dfcf18d9a1e0cfb59c079..10c146424baa1edd24c3e316625c07a35816f7f6 100644 (file)
@@ -27,6 +27,7 @@ properties:
           - qcom,msm8996-ufshc
           - qcom,msm8998-ufshc
           - qcom,sa8775p-ufshc
+          - qcom,sc7280-ufshc
           - qcom,sc8280xp-ufshc
           - qcom,sdm845-ufshc
           - qcom,sm6115-ufshc
@@ -118,6 +119,7 @@ allOf:
             enum:
               - qcom,msm8998-ufshc
               - qcom,sa8775p-ufshc
+              - qcom,sc7280-ufshc
               - qcom,sc8280xp-ufshc
               - qcom,sm8250-ufshc
               - qcom,sm8350-ufshc
index 88cc1e3a0c887c367c7ed83ff2a0835398a20b93..b2b509b3944d85714316c8f91b042054373416a4 100644 (file)
@@ -55,9 +55,12 @@ properties:
 
   samsung,sysreg:
     $ref: /schemas/types.yaml#/definitions/phandle-array
-    description: Should be phandle/offset pair. The phandle to the syscon node
-                 which indicates the FSYSx sysreg interface and the offset of
-                 the control register for UFS io coherency setting.
+    items:
+      - items:
+          - description: phandle to FSYSx sysreg node
+          - description: offset of the control register for UFS io coherency setting
+    description:
+      Phandle and offset to the FSYSx sysreg for UFS io coherency setting.
 
   dma-coherent: true
 
index 985ea8f64de8031af06e5839189dab39d6a0927a..31fe7f30ff5b8d29c3554fa5677ec9bbbe96760d 100644 (file)
@@ -87,6 +87,8 @@ properties:
     description:
       Specifies max. load that can be drawn from VCCQ2 supply.
 
+  msi-parent: true
+
 dependencies:
   freq-table-hz: [ clocks ]
   operating-points-v2: [ clocks, clock-names ]
index bb373eb025a5f92b085d62b21354d94eaa002e65..00f87a558c7dd3b8af7392f87448ac8a00fbcd95 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Xilinx SuperSpeed DWC3 USB SoC controller
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 properties:
   compatible:
index 594ebb3ee432037f98adaa3e7cfcdaa4fae81ff2..6ceafa4af29221efd6edad65befa6449658f8e71 100644 (file)
@@ -9,9 +9,6 @@ title: USB xHCI Controller
 maintainers:
   - Mathias Nyman <mathias.nyman@intel.com>
 
-allOf:
-  - $ref: usb-xhci.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -25,6 +22,11 @@ properties:
               - marvell,armada-380-xhci
               - marvell,armada-8k-xhci
           - const: generic-xhci
+      - description: Broadcom SoCs with power domains
+        items:
+          - enum:
+              - brcm,bcm2711-xhci
+          - const: brcm,xhci-brcm-v2
       - description: Broadcom STB SoCs with xHCI
         enum:
           - brcm,xhci-brcm-v2
@@ -49,6 +51,9 @@ properties:
       - const: core
       - const: reg
 
+  power-domains:
+    maxItems: 1
+
 unevaluatedProperties: false
 
 required:
@@ -56,6 +61,20 @@ required:
   - reg
   - interrupts
 
+allOf:
+  - $ref: usb-xhci.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm2711-xhci
+    then:
+      required:
+        - power-domains
+    else:
+      properties:
+        power-domains: false
+
 examples:
   - |
     usb@f0931000 {
index ee08b9c3721f8998439258a10ef944ad11a8fccc..37cf5249e526bb8ebce78d12ba228b3f460e218c 100644 (file)
@@ -29,6 +29,11 @@ properties:
     description:
       the regulator that provides 3.3V core power to the hub.
 
+  peer-hub:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle to the peer hub on the controller.
+
 required:
   - compatible
   - reg
index e9644e333d78135d83c3bc88cf903960140315f5..924fd3d748a8817517c01172680728ab7b0d87d4 100644 (file)
@@ -124,6 +124,17 @@ properties:
       defined in the xHCI spec on MTK's controller.
     default: 5000
 
+  rx-fifo-depth:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      It is a quirk used to work around Gen1 isoc-in endpoint transfer issue
+      that still send out unexpected ACK after device finishes the burst
+      transfer with a short packet and cause an exception, specially on a 4K
+      camera device, it happens on controller before about IPM v1.6.0;
+      the side-effect is that it may cause performance drop about 10%,
+      including bulk transfer, prefer to use 3k here. The size is in bytes.
+    enum: [1024, 2048, 3072, 4096]
+
   # the following properties are only used for case 1
   wakeup-source:
     description: enable USB remote wakeup, see power/wakeup-source.txt
index 6d4cfd943f5847ff43cbccd13e5f210a95448c1c..445183d9d6db1adaa1ab9d04cb4271eadbe22ffc 100644 (file)
@@ -16,8 +16,9 @@ description:
   USB 2.0 traffic.
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
   - Michal Simek <michal.simek@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 properties:
   compatible:
index 28eb25ecba74ee1633c24ad726d1834ba60a2d9b..eaedb4cc6b6cceae8af44c7507086c4b36fc402c 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/usb/nxp,ptn5110.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: NXP PTN5110 Typec Port Cotroller
+title: NXP PTN5110 Type-C Port Controller
 
 maintainers:
   - Li Jun <jun.li@nxp.com>
index 915c8205623b3abf98a43c9ab851e2bdb32c36f7..63d150b216c52873248ac478d840a713135dd576 100644 (file)
@@ -46,6 +46,8 @@ properties:
           - qcom,sm8350-dwc3
           - qcom,sm8450-dwc3
           - qcom,sm8550-dwc3
+          - qcom,sm8650-dwc3
+          - qcom,x1e80100-dwc3
       - const: qcom,dwc3
 
   reg:
@@ -97,12 +99,29 @@ properties:
       - const: apps-usb
 
   interrupts:
-    minItems: 1
-    maxItems: 4
+    description: |
+      Different types of interrupts are used based on HS PHY used on target:
+        - pwr_event: Used for wakeup based on other power events.
+        - hs_phY_irq: Apart from DP/DM/QUSB2 PHY interrupts, there is
+                       hs_phy_irq which is not triggered by default and its
+                       functionality is mutually exclusive to that of
+                       {dp/dm}_hs_phy_irq and qusb2_phy_irq.
+        - qusb2_phy: SoCs with QUSB2 PHY do not have separate DP/DM IRQs and
+                      expose only a single IRQ whose behavior can be modified
+                      by the QUSB2PHY_INTR_CTRL register. The required DPSE/
+                      DMSE configuration is done in QUSB2PHY_INTR_CTRL register
+                      of PHY address space.
+        - {dp/dm}_hs_phy_irq: These IRQ's directly reflect changes on the DP/
+                               DM pads of the SoC. These are used for wakeup
+                               only on SoCs with non-QUSB2 targets with
+                               exception of SDM670/SDM845/SM6350.
+        - ss_phy_irq: Used for remote wakeup in Super Speed mode of operation.
+    minItems: 2
+    maxItems: 5
 
   interrupt-names:
-    minItems: 1
-    maxItems: 4
+    minItems: 2
+    maxItems: 5
 
   qcom,select-utmi-as-pipe-clk:
     description:
@@ -263,6 +282,7 @@ allOf:
           contains:
             enum:
               - qcom,sc8280xp-dwc3
+              - qcom,x1e80100-dwc3
     then:
       properties:
         clocks:
@@ -288,8 +308,8 @@ allOf:
     then:
       properties:
         clocks:
-          minItems: 5
-          maxItems: 6
+          minItems: 4
+          maxItems: 5
         clock-names:
           oneOf:
             - items:
@@ -298,13 +318,11 @@ allOf:
                 - const: iface
                 - const: sleep
                 - const: mock_utmi
-                - const: bus
             - items:
                 - const: cfg_noc
                 - const: core
                 - const: sleep
                 - const: mock_utmi
-                - const: bus
 
   - if:
       properties:
@@ -318,6 +336,7 @@ allOf:
               - qcom,sm8250-dwc3
               - qcom,sm8450-dwc3
               - qcom,sm8550-dwc3
+              - qcom,sm8650-dwc3
     then:
       properties:
         clocks:
@@ -357,59 +376,20 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,ipq4019-dwc3
+              - qcom,ipq5018-dwc3
               - qcom,ipq6018-dwc3
-              - qcom,ipq8064-dwc3
               - qcom,ipq8074-dwc3
-              - qcom,msm8994-dwc3
-              - qcom,qcs404-dwc3
-              - qcom,sc7180-dwc3
-              - qcom,sdm670-dwc3
-              - qcom,sdm845-dwc3
-              - qcom,sdx55-dwc3
-              - qcom,sdx65-dwc3
-              - qcom,sdx75-dwc3
-              - qcom,sm4250-dwc3
-              - qcom,sm6125-dwc3
-              - qcom,sm6350-dwc3
-              - qcom,sm8150-dwc3
-              - qcom,sm8250-dwc3
-              - qcom,sm8350-dwc3
-              - qcom,sm8450-dwc3
-              - qcom,sm8550-dwc3
-    then:
-      properties:
-        interrupts:
-          items:
-            - description: The interrupt that is asserted
-                when a wakeup event is received on USB2 bus.
-            - description: The interrupt that is asserted
-                when a wakeup event is received on USB3 bus.
-            - description: Wakeup event on DM line.
-            - description: Wakeup event on DP line.
-        interrupt-names:
-          items:
-            - const: hs_phy_irq
-            - const: ss_phy_irq
-            - const: dm_hs_phy_irq
-            - const: dp_hs_phy_irq
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
               - qcom,msm8953-dwc3
-              - qcom,msm8996-dwc3
               - qcom,msm8998-dwc3
-              - qcom,sm6115-dwc3
     then:
       properties:
         interrupts:
-          maxItems: 2
+          minItems: 2
+          maxItems: 3
         interrupt-names:
           items:
-            - const: hs_phy_irq
+            - const: pwr_event
+            - const: qusb2_phy
             - const: ss_phy_irq
 
   - if:
@@ -417,37 +397,21 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,ipq5018-dwc3
-              - qcom,ipq5332-dwc3
+              - qcom,msm8996-dwc3
+              - qcom,qcs404-dwc3
               - qcom,sdm660-dwc3
-    then:
-      properties:
-        interrupts:
-          minItems: 1
-          maxItems: 2
-        interrupt-names:
-          minItems: 1
-          items:
-            - const: hs_phy_irq
-            - const: ss_phy_irq
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,sc7280-dwc3
+              - qcom,sm6115-dwc3
+              - qcom,sm6125-dwc3
     then:
       properties:
         interrupts:
           minItems: 3
           maxItems: 4
         interrupt-names:
-          minItems: 3
           items:
+            - const: pwr_event
+            - const: qusb2_phy
             - const: hs_phy_irq
-            - const: dp_hs_phy_irq
-            - const: dm_hs_phy_irq
             - const: ss_phy_irq
 
   - if:
@@ -455,7 +419,8 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,sc8280xp-dwc3
+              - qcom,ipq5332-dwc3
+              - qcom,x1e80100-dwc3
     then:
       properties:
         interrupts:
@@ -472,16 +437,35 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,ipq4019-dwc3
+              - qcom,ipq8064-dwc3
+              - qcom,msm8994-dwc3
               - qcom,sa8775p-dwc3
+              - qcom,sc7180-dwc3
+              - qcom,sc7280-dwc3
+              - qcom,sc8280xp-dwc3
+              - qcom,sdm670-dwc3
+              - qcom,sdm845-dwc3
+              - qcom,sdx55-dwc3
+              - qcom,sdx65-dwc3
+              - qcom,sdx75-dwc3
+              - qcom,sm4250-dwc3
+              - qcom,sm6350-dwc3
+              - qcom,sm8150-dwc3
+              - qcom,sm8250-dwc3
+              - qcom,sm8350-dwc3
+              - qcom,sm8450-dwc3
+              - qcom,sm8550-dwc3
+              - qcom,sm8650-dwc3
     then:
       properties:
         interrupts:
-          minItems: 3
-          maxItems: 4
+          minItems: 4
+          maxItems: 5
         interrupt-names:
-          minItems: 3
           items:
             - const: pwr_event
+            - const: hs_phy_irq
             - const: dp_hs_phy_irq
             - const: dm_hs_phy_irq
             - const: ss_phy_irq
@@ -519,12 +503,13 @@ examples:
                           <&gcc GCC_USB30_PRIM_MASTER_CLK>;
             assigned-clock-rates = <19200000>, <150000000>;
 
-            interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+            interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>,
                          <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
-                         <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
-            interrupt-names = "hs_phy_irq", "ss_phy_irq",
-                          "dm_hs_phy_irq", "dp_hs_phy_irq";
+                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "pwr_event", "hs_phy_irq",
+                          "dp_hs_phy_irq", "dm_hs_phy_irq", "ss_phy_irq";
 
             power-domains = <&gcc USB30_PRIM_GDSC>;
 
diff --git a/Bindings/usb/qcom,wcd939x-usbss.yaml b/Bindings/usb/qcom,wcd939x-usbss.yaml
new file mode 100644 (file)
index 0000000..7ddfd33
--- /dev/null
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/qcom,wcd939x-usbss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCD9380/WCD9385 USB SubSystem Altmode/Analog Audio Switch
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+description:
+  Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a
+  functionally separate USB SubSystem for Altmode/Analog Audio Switch
+  accessible over an I2C interface.
+  The Audio Headphone and Microphone data path between the Codec and the
+  USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint
+  graph description to handle USB-C altmode & orientation switching for Audio
+  Accessory Mode.
+
+properties:
+  compatible:
+    oneOf:
+      - const: qcom,wcd9390-usbss
+      - items:
+          - const: qcom,wcd9395-usbss
+          - const: qcom,wcd9390-usbss
+
+  reg:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  vdd-supply:
+    description: USBSS VDD power supply
+
+  mode-switch:
+    description: Flag the port as possible handle of altmode switching
+    type: boolean
+
+  orientation-switch:
+    description: Flag the port as possible handler of orientation switching
+    type: boolean
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          A port node to link the WCD939x USB SubSystem to a TypeC controller for the
+          purpose of handling altmode muxing and orientation switching.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          A port node to link the WCD939x USB SubSystem to the Codec SubSystem for the
+          purpose of handling USB-C Audio Accessory Mode muxing and orientation switching.
+
+required:
+  - compatible
+  - reg
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        typec-mux@42 {
+            compatible = "qcom,wcd9390-usbss";
+            reg = <0x42>;
+
+            vdd-supply = <&vreg_bob>;
+
+            mode-switch;
+            orientation-switch;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    wcd9390_usbss_sbu: endpoint {
+                        remote-endpoint = <&typec_sbu>;
+                    };
+                };
+                port@1 {
+                    reg = <1>;
+                    wcd9390_usbss_codec: endpoint {
+                        remote-endpoint = <&wcd9390_codec_usbss>;
+                    };
+                };
+            };
+        };
+    };
+...
index bad55dfb2fa036f4a9a08eba9aedae0eb4e7fea1..40ada78f2328895ac2378fab9a09c818e1034dfd 100644 (file)
@@ -19,7 +19,7 @@ properties:
       - items:
           - enum:
               - renesas,usbhs-r7s9210   # RZ/A2
-              - renesas,usbhs-r9a07g043 # RZ/G2UL
+              - renesas,usbhs-r9a07g043 # RZ/G2UL and RZ/Five
               - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
               - renesas,usbhs-r9a07g054 # RZ/V2L
           - const: renesas,rza2-usbhs
index ee5af4b381b1bc97b11954a2141485e1f06671e1..203a1eb66691f6f3ea69686e397bc5a986a830ba 100644 (file)
@@ -432,6 +432,10 @@ properties:
     items:
       enum: [1, 4, 8, 16, 32, 64, 128, 256]
 
+  num-hc-interrupters:
+    maximum: 8
+    default: 1
+
   port:
     $ref: /schemas/graph.yaml#/properties/port
     description:
index 323d664ae06a4de232eb21e2ee2ea8e814d69d17..1745e28b31105252e5b4b79dfe142f370c5d7294 100644 (file)
@@ -38,6 +38,10 @@ properties:
       - const: main
       - const: patch-address
 
+  reset-gpios:
+    description: GPIO used for the HRESET pin.
+    maxItems: 1
+
   wakeup-source: true
 
   interrupts:
@@ -90,6 +94,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/interrupt-controller/irq.h>
     i2c {
         #address-cells = <1>;
@@ -106,6 +111,7 @@ examples:
 
             pinctrl-names = "default";
             pinctrl-0 = <&typec_pins>;
+            reset-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
 
             typec_con: connector {
                 compatible = "usb-c-connector";
index 180a261c3e8f376311ffcfca624ec14332f807ae..4238ae896ef6f5b88e4000fd7570764bb85ed7a2 100644 (file)
@@ -29,6 +29,12 @@ properties:
     description: Interrupt moderation interval
     default: 5000
 
+  num-hc-interrupters:
+    description: Maximum number of interrupters to allocate
+    $ref: /schemas/types.yaml#/definitions/uint16
+    minimum: 1
+    maximum: 1024
+
 additionalProperties: true
 
 examples:
index 868dffe314bcba9123a4e99b9966de738b0ea8f3..a7f75fe366652bb2dcec6bf6e87c5879d31f1fce 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Xilinx udc controller
 
 maintainers:
-  - Piyush Mehta <piyush.mehta@amd.com>
+  - Mubin Sayyed <mubin.sayyed@amd.com>
+  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 
 properties:
   compatible:
index 309b94c328c8493dab72efbc9c1df87f6d3d609d..1a0dc04f1db47865766c3c71981cbdbd64c8343e 100644 (file)
@@ -79,6 +79,8 @@ patternProperties:
     description: ALFA Network Inc.
   "^allegro,.*":
     description: Allegro DVT
+  "^alliedvision,.*":
+    description: Allied Vision Technologies GmbH
   "^allo,.*":
     description: Allo.com
   "^allwinner,.*":
@@ -119,6 +121,8 @@ patternProperties:
     description: Andes Technology Corporation
   "^anvo,.*":
     description: Anvo-Systems Dresden GmbH
+  "^aosong,.*":
+    description: Guangzhou Aosong Electronic Co., Ltd.
   "^apm,.*":
     description: Applied Micro Circuits Corporation (APM)
   "^apple,.*":
@@ -294,6 +298,8 @@ patternProperties:
     description: CompuLab Ltd.
   "^congatec,.*":
     description: congatec GmbH
+  "^coolpi,.*":
+    description: cool-pi.com
   "^coreriver,.*":
     description: CORERIVER Semiconductor Co.,Ltd.
   "^corpro,.*":
@@ -352,6 +358,8 @@ patternProperties:
     description: Digi International Inc.
   "^digilent,.*":
     description: Diglent, Inc.
+  "^dimonoff,.*":
+    description: Dimonoff inc.
   "^diodes,.*":
     description: Diodes, Inc.
   "^dioo,.*":
@@ -474,6 +482,8 @@ patternProperties:
     description: Fairphone B.V.
   "^faraday,.*":
     description: Faraday Technology Corporation
+  "^fascontek,.*":
+    description: Fascontek
   "^fastrax,.*":
     description: Fastrax Oy
   "^fcs,.*":
@@ -502,6 +512,8 @@ patternProperties:
     description: Fujitsu Ltd.
   "^fxtec,.*":
     description: FX Technology Ltd.
+  "^galaxycore,.*":
+    description: GalaxyCore Inc.
   "^gardena,.*":
     description: GARDENA GmbH
   "^gateway,.*":
@@ -597,6 +609,8 @@ patternProperties:
     description: Hewlett Packard Enterprise
   "^hsg,.*":
     description: HannStar Display Co.
+  "^htc,.*":
+    description: HTC Corporation
   "^huawei,.*":
     description: Huawei Technologies Co., Ltd.
   "^hugsun,.*":
@@ -1179,6 +1193,8 @@ patternProperties:
     description: Shenzhen Roofull Technology Co, Ltd
   "^roseapplepi,.*":
     description: RoseapplePi.org
+  "^rve,.*":
+    description: Recharge Véhicule Électrique (RVE) inc.
   "^saef,.*":
     description: Saef Technology Limited
   "^samsung,.*":
@@ -1281,6 +1297,8 @@ patternProperties:
     description: Skyworks Solutions, Inc.
   "^smartlabs,.*":
     description: SmartLabs LLC
+  "^smi,.*":
+    description: Silicon Motion Technology Corporation
   "^smsc,.*":
     description: Standard Microsystems Corporation
   "^snps,.*":
@@ -1381,6 +1399,8 @@ patternProperties:
     description: Technologic Systems
   "^techstar,.*":
     description: Shenzhen Techstar Electronics Co., Ltd.
+  "^techwell,.*":
+    description: Techwell, Inc.
   "^teejet,.*":
     description: TeeJet
   "^teltonika,.*":
@@ -1434,6 +1454,8 @@ patternProperties:
     description: TPO
   "^tq,.*":
     description: TQ-Systems GmbH
+  "^transpeed,.*":
+    description: Transpeed
   "^traverse,.*":
     description: Traverse Technologies Australia Pty Ltd
   "^tronfy,.*":
diff --git a/Bindings/w1/amd,axi-1wire-host.yaml b/Bindings/w1/amd,axi-1wire-host.yaml
new file mode 100644 (file)
index 0000000..ef70fa2
--- /dev/null
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/w1/amd,axi-1wire-host.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AMD AXI 1-wire bus host for programmable logic
+
+maintainers:
+  - Kris Chaplin <kris.chaplin@amd.com>
+
+properties:
+  compatible:
+    const: amd,axi-1wire-host
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    onewire@a0000000 {
+        compatible = "amd,axi-1wire-host";
+        reg = <0xa0000000 0x10000>;
+        clocks = <&zynqmp_clk 0x47>;
+        interrupts = <GIC_SPI 0x59 IRQ_TYPE_LEVEL_HIGH>;
+    };
+
+...
index 274519fc24fd0507f23af87d9be7f13c619ca51c..64c8f73938099cb33d97f14af9343803bf1d1f4e 100644 (file)
@@ -6,13 +6,13 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Allwinner A10 Watchdog
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Chen-Yu Tsai <wens@csie.org>
   - Maxime Ripard <mripard@kernel.org>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     oneOf:
index fea84f5b7e6d4ea042aa346b7b55bf7d2f1769c5..6425fe51d20cc980814d5d413e81ad9268378787 100644 (file)
@@ -6,12 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Alphascale asm9260 Watchdog timer
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Oleksij Rempel <linux@rempel-privat.de>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     const: alphascale,asm9260-wdt
index 929681127df04155f3fa9a578934d444b716a5b7..21872e15916cadd73392e7dede2d9389fcf88ef5 100644 (file)
@@ -6,12 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Apple SoC Watchdog
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Sven Peter <sven@svenpeter.dev>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     items:
index b5573852ef5aa1a32d7a0ae79a56df7aa703840f..8e9d0b7e82444086a49b782ea7f74ca5a4e5e71f 100644 (file)
@@ -6,12 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: ARM Secure Monitor Call based watchdog
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Julius Werner <jwerner@chromium.org>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     enum:
index 526ff908d134df1ef42a34d1caf3c3ff83be7dd0..e898167ef6287edb6dac8184a360cec0c207e09e 100644 (file)
@@ -6,14 +6,14 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: BCM63xx and BCM7038 watchdog timer
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Florian Fainelli <f.fainelli@gmail.com>
   - Justin Chen <justinpopo6@gmail.com>
   - Rafał Miłecki <rafal@milecki.pl>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     enum:
@@ -29,11 +29,11 @@ properties:
       The clock running the watchdog. If no clock is found the driver will
       default to 27000000 Hz.
 
-unevaluatedProperties: false
-
 required:
   - reg
 
+unevaluatedProperties: false
+
 examples:
   - |
     watchdog@f040a7e8 {
index 1844d7e026fe42fdbd3f4b9c960a73b29e991f0e..13236ee61f6f96f9f559d6c01b21da297066b546 100644 (file)
@@ -12,12 +12,12 @@ description: |
   timer counters. The first timer (called "Timer A") is the only one that can be
   used as watchdog.
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Baruch Siach <baruch@tkos.co.il>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     const: cnxt,cx92755-wdt
index f058628bb632945e01ff68831844e442f9253d70..c8f69812059725b02bb0e21dd0f3607ceff7a6d1 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/watchdog/dlg,da9062-watchdog.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Dialog Semiconductor DA9062/61 Watchdog Timer
+title: Dialog Semiconductor DA906{1,2,3} Watchdog Timer
 
 maintainers:
   - Steve Twiss <stwiss.opensource@diasemi.com>
@@ -14,9 +14,13 @@ allOf:
 
 properties:
   compatible:
-    enum: 
-      - dlg,da9061-watchdog
-      - dlg,da9062-watchdog
+    oneOf:
+      - enum:
+          - dlg,da9062-watchdog
+          - dlg,da9063-watchdog
+      - items:
+          - const: dlg,da9061-watchdog
+          - const: dlg,da9062-watchdog
 
   dlg,use-sw-pm:
     type: boolean
index 1437ff8a122f2be0ceccc8c4c9c8fa59b38a2f8b..8231dde2bfa602d0ebc0e1ec1e01c2d15856e8ad 100644 (file)
@@ -9,6 +9,9 @@ title: Intel Keem Bay SoC non-secure Watchdog Timer
 maintainers:
   - Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     enum:
@@ -37,7 +40,7 @@ required:
   - interrupt-names
   - clocks
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 1a6490c43d89a6c1c2f5c8c4c8929e86ff53d91d..442c21f12a3b27cf23bb1ed012bd9bc340b8b9ee 100644 (file)
@@ -6,14 +6,14 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Maxim 63xx Watchdog Timers
 
-allOf:
-  - $ref: watchdog.yaml#
-  - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
-
 maintainers:
   - Marc Zyngier <maz@kernel.org>
   - Linus Walleij <linus.walleij@linaro.org>
 
+allOf:
+  - $ref: watchdog.yaml#
+  - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
+
 properties:
   compatible:
     enum:
index cc502838bc398a5f9e46153426cfcd5e794d98d7..8d2520241e37f0e8a7526cbc99d5aa0d4edc9a55 100644 (file)
@@ -25,6 +25,7 @@ properties:
           - mediatek,mt6735-wdt
           - mediatek,mt6795-wdt
           - mediatek,mt7986-wdt
+          - mediatek,mt7988-wdt
           - mediatek,mt8183-wdt
           - mediatek,mt8186-wdt
           - mediatek,mt8188-wdt
diff --git a/Bindings/watchdog/nxp,pnx4008-wdt.yaml b/Bindings/watchdog/nxp,pnx4008-wdt.yaml
new file mode 100644 (file)
index 0000000..35ef940
--- /dev/null
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/nxp,pnx4008-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP PNX watchdog timer
+
+maintainers:
+  - Roland Stigge <stigge@antcom.de>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    const: nxp,pnx4008-wdt
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@4003c000 {
+        compatible = "nxp,pnx4008-wdt";
+        reg = <0x4003c000 0x1000>;
+        timeout-sec = <10>;
+    };
diff --git a/Bindings/watchdog/pnx4008-wdt.txt b/Bindings/watchdog/pnx4008-wdt.txt
deleted file mode 100644 (file)
index 4b76bec..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-* NXP PNX watchdog timer
-
-Required properties:
-- compatible: must be "nxp,pnx4008-wdt"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-Optional properties:
-- timeout-sec: contains the watchdog timeout in seconds.
-
-Example:
-
-       watchdog@4003c000 {
-               compatible = "nxp,pnx4008-wdt";
-               reg = <0x4003C000 0x1000>;
-               timeout-sec = <10>;
-       };
diff --git a/Bindings/watchdog/qca,ar7130-wdt.yaml b/Bindings/watchdog/qca,ar7130-wdt.yaml
new file mode 100644 (file)
index 0000000..82040ca
--- /dev/null
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/qca,ar7130-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Atheros AR7130 Watchdog Timer (WDT) Controller
+
+maintainers:
+  - Gabor Juhos <juhosg@openwrt.org>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    const: qca,ar7130-wdt
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@18060008 {
+        compatible = "qca,ar7130-wdt";
+        reg = <0x18060008 0x8>;
+    };
diff --git a/Bindings/watchdog/qca-ar7130-wdt.txt b/Bindings/watchdog/qca-ar7130-wdt.txt
deleted file mode 100644 (file)
index 7a89e5f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-* Qualcomm Atheros AR7130 Watchdog Timer (WDT) Controller
-
-Required properties:
-- compatible: must be "qca,ar7130-wdt"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-Example:
-
-wdt@18060008 {
-       compatible = "qca,ar9330-wdt", "qca,ar7130-wdt";
-       reg = <0x18060008 0x8>;
-};
index 568eb8480fc31e752d67ba5dd4f09ebc39a72a19..dc6af204e8af52b344a5d1fc8a1ad7c8143d7a92 100644 (file)
@@ -30,22 +30,27 @@ examples:
     #include <dt-bindings/interrupt-controller/irq.h>
     #include <dt-bindings/spmi/spmi.h>
 
-    pmic@0 {
-        compatible = "qcom,pm8916", "qcom,spmi-pmic";
-        reg = <0x0 SPMI_USID>;
-        #address-cells = <1>;
+    spmi {
+        #address-cells = <2>;
         #size-cells = <0>;
 
-        pon@800 {
-            compatible = "qcom,pm8916-pon";
-            reg = <0x800>;
-            mode-bootloader = <0x2>;
-            mode-recovery = <0x1>;
-
-            watchdog {
-                compatible = "qcom,pm8916-wdt";
-                interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
-                timeout-sec = <60>;
+        pmic@0 {
+            compatible = "qcom,pm8916", "qcom,spmi-pmic";
+            reg = <0x0 SPMI_USID>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            pon@800 {
+                compatible = "qcom,pm8916-pon";
+                reg = <0x800>;
+                mode-bootloader = <0x2>;
+                mode-recovery = <0x1>;
+
+                watchdog {
+                    compatible = "qcom,pm8916-wdt";
+                    interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
+                    timeout-sec = <60>;
+                };
             };
         };
     };
index c12bc852aedc4ea49007344c4bdc40535b4a9302..a4f35c598cdb54aa4142bec2085e5963056fcbf6 100644 (file)
@@ -123,7 +123,7 @@ examples:
         compatible = "qcom,apss-wdt-sm8150", "qcom,kpss-wdt";
         reg = <0x17c10000 0x1000>;
         clocks = <&sleep_clk>;
-        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+        interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
         timeout-sec = <10>;
     };
 
diff --git a/Bindings/watchdog/realtek,rtd119x.txt b/Bindings/watchdog/realtek,rtd119x.txt
deleted file mode 100644 (file)
index 0565305..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Realtek RTD1295 Watchdog
-========================
-
-Required properties:
-
-- compatible :  Should be "realtek,rtd1295-watchdog"
-- reg        :  Specifies the physical base address and size of registers
-- clocks     :  Specifies one clock input
-
-
-Example:
-
-       watchdog@98007680 {
-               compatible = "realtek,rtd1295-watchdog";
-               reg = <0x98007680 0x100>;
-               clocks = <&osc27M>;
-       };
diff --git a/Bindings/watchdog/realtek,rtd1295-watchdog.yaml b/Bindings/watchdog/realtek,rtd1295-watchdog.yaml
new file mode 100644 (file)
index 0000000..2a0ea16
--- /dev/null
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/realtek,rtd1295-watchdog.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Realtek RTD1295 Watchdog
+
+maintainers:
+  - Andreas Färber <afaerber@suse.de>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    const: realtek,rtd1295-watchdog
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@98007680 {
+        compatible = "realtek,rtd1295-watchdog";
+        reg = <0x98007680 0x100>;
+        clocks = <&osc27M>;
+    };
index 8fb6656ba0c28d233a63b161c027f3e52fc80113..77a5ddd0426ebc3d50adf6f3e195710f6790f988 100644 (file)
@@ -16,14 +16,20 @@ description: |+
 
 properties:
   compatible:
-    enum:
-      - samsung,s3c2410-wdt                   # for S3C2410
-      - samsung,s3c6410-wdt                   # for S3C6410, S5PV210 and Exynos4
-      - samsung,exynos5250-wdt                # for Exynos5250
-      - samsung,exynos5420-wdt                # for Exynos5420
-      - samsung,exynos7-wdt                   # for Exynos7
-      - samsung,exynos850-wdt                 # for Exynos850
-      - samsung,exynosautov9-wdt              # for Exynosautov9
+    oneOf:
+      - enum:
+          - google,gs101-wdt                      # for Google gs101
+          - samsung,s3c2410-wdt                   # for S3C2410
+          - samsung,s3c6410-wdt                   # for S3C6410, S5PV210 and Exynos4
+          - samsung,exynos5250-wdt                # for Exynos5250
+          - samsung,exynos5420-wdt                # for Exynos5420
+          - samsung,exynos7-wdt                   # for Exynos7
+          - samsung,exynos850-wdt                 # for Exynos850
+          - samsung,exynosautov9-wdt              # for Exynosautov9
+      - items:
+          - enum:
+              - tesla,fsd-wdt
+          - const: samsung,exynos7-wdt
 
   reg:
     maxItems: 1
@@ -42,13 +48,14 @@ properties:
   samsung,cluster-index:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
-      Index of CPU cluster on which watchdog is running (in case of Exynos850)
+      Index of CPU cluster on which watchdog is running (in case of Exynos850
+      or Google gs101).
 
   samsung,syscon-phandle:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
       Phandle to the PMU system controller node (in case of Exynos5250,
-      Exynos5420, Exynos7 and Exynos850).
+      Exynos5420, Exynos7, Exynos850 and gs101).
 
 required:
   - compatible
@@ -64,6 +71,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - google,gs101-wdt
               - samsung,exynos5250-wdt
               - samsung,exynos5420-wdt
               - samsung,exynos7-wdt
@@ -77,6 +85,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - google,gs101-wdt
               - samsung,exynos850-wdt
               - samsung,exynosautov9-wdt
     then:
index 76eceeddd1507daa963decf4f4f0431ff3925079..c7aab0418a32022eafe9c6084a450ab1c48ebb8a 100644 (file)
@@ -6,12 +6,12 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Synopsys Designware Watchdog Timer
 
-allOf:
-  - $ref: watchdog.yaml#
-
 maintainers:
   - Jamie Iles <jamie@jamieiles.com>
 
+allOf:
+  - $ref: watchdog.yaml#
+
 properties:
   compatible:
     oneOf:
@@ -73,13 +73,13 @@ properties:
     minItems: 16
     maxItems: 16
 
-unevaluatedProperties: false
-
 required:
   - compatible
   - reg
   - clocks
 
+unevaluatedProperties: false
+
 examples:
   - |
     watchdog@ffd02000 {
diff --git a/Bindings/watchdog/technologic,ts7200-wdt.yaml b/Bindings/watchdog/technologic,ts7200-wdt.yaml
new file mode 100644 (file)
index 0000000..7e4bfef
--- /dev/null
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/technologic,ts7200-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Technologic Systems TS-72xx based SBCs watchdog
+
+maintainers:
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: technologic,ts7200-wdt
+      - items:
+          - enum:
+              - technologic,ts7300-wdt
+              - technologic,ts7260-wdt
+              - technologic,ts7250-wdt
+          - const: technologic,ts7200-wdt
+
+  reg:
+    items:
+      - description: control register
+      - description: feed register
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@23800000 {
+      compatible = "technologic,ts7200-wdt";
+      reg = <0x23800000 0x01>, <0x23c00000 0x01>;
+      timeout-sec = <30>;
+    };
+
+...
index f7248348a45946596a5d73fa40a2598f5dae9a54..51e0f6059410fa4a093fad04b21896842cae5c28 100644 (file)
 #define QCOM_ID_SA8775P                        534
 #define QCOM_ID_QRU1000                        539
 #define QCOM_ID_QDU1000                        545
+#define QCOM_ID_SM8650                 557
 #define QCOM_ID_SM4450                 568
 #define QCOM_ID_QDU1010                        587
 #define QCOM_ID_QRU1032                        588
index 387767f4e298604a5c9f6e33ad50d8982a5f5330..fd09819da2ecd51332bcfdd7d51c936dca0f7a12 100644 (file)
 #define CLKID_MIPI_DSI_PXCLK_DIV               268
 #define CLKID_MIPI_DSI_PXCLK_SEL               269
 #define CLKID_MIPI_DSI_PXCLK                   270
+#define CLKID_CTS_ENCL                         271
+#define CLKID_CTS_ENCL_SEL                     272
+#define CLKID_MIPI_ISP_DIV                     273
+#define CLKID_MIPI_ISP_SEL                     274
+#define CLKID_MIPI_ISP                         275
+#define CLKID_MIPI_ISP_GATE                    276
+#define CLKID_MIPI_ISP_CSI_PHY0                        277
+#define CLKID_MIPI_ISP_CSI_PHY1                        278
 
 #endif /* __G12A_CLKC_H */
diff --git a/include/dt-bindings/clock/google,gs101.h b/include/dt-bindings/clock/google,gs101.h
new file mode 100644 (file)
index 0000000..21adec2
--- /dev/null
@@ -0,0 +1,392 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2023 Linaro Ltd.
+ * Author: Peter Griffin <peter.griffin@linaro.org>
+ *
+ * Device Tree binding constants for Google gs101 clock controller.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_GOOGLE_GS101_H
+#define _DT_BINDINGS_CLOCK_GOOGLE_GS101_H
+
+/* CMU_TOP PLL */
+#define CLK_FOUT_SHARED0_PLL           1
+#define CLK_FOUT_SHARED1_PLL           2
+#define CLK_FOUT_SHARED2_PLL           3
+#define CLK_FOUT_SHARED3_PLL           4
+#define CLK_FOUT_SPARE_PLL             5
+
+/* CMU_TOP MUX */
+#define CLK_MOUT_PLL_SHARED0           6
+#define CLK_MOUT_PLL_SHARED1           7
+#define CLK_MOUT_PLL_SHARED2           8
+#define CLK_MOUT_PLL_SHARED3           9
+#define CLK_MOUT_PLL_SPARE             10
+#define CLK_MOUT_CMU_BO_BUS            11
+#define CLK_MOUT_CMU_BUS0_BUS          12
+#define CLK_MOUT_CMU_BUS1_BUS          13
+#define CLK_MOUT_CMU_BUS2_BUS          14
+#define CLK_MOUT_CMU_CIS_CLK0          15
+#define CLK_MOUT_CMU_CIS_CLK1          16
+#define CLK_MOUT_CMU_CIS_CLK2          17
+#define CLK_MOUT_CMU_CIS_CLK3          18
+#define CLK_MOUT_CMU_CIS_CLK4          19
+#define CLK_MOUT_CMU_CIS_CLK5          20
+#define CLK_MOUT_CMU_CIS_CLK6          21
+#define CLK_MOUT_CMU_CIS_CLK7          22
+#define CLK_MOUT_CMU_CMU_BOOST         23
+#define CLK_MOUT_CMU_BOOST_OPTION1     24
+#define CLK_MOUT_CMU_CORE_BUS          25
+#define CLK_MOUT_CMU_CPUCL0_DBG                26
+#define CLK_MOUT_CMU_CPUCL0_SWITCH     27
+#define CLK_MOUT_CMU_CPUCL1_SWITCH     28
+#define CLK_MOUT_CMU_CPUCL2_SWITCH     29
+#define CLK_MOUT_CMU_CSIS_BUS          30
+#define CLK_MOUT_CMU_DISP_BUS          31
+#define CLK_MOUT_CMU_DNS_BUS           32
+#define CLK_MOUT_CMU_DPU_BUS           33
+#define CLK_MOUT_CMU_EH_BUS            34
+#define CLK_MOUT_CMU_G2D_G2D           35
+#define CLK_MOUT_CMU_G2D_MSCL          36
+#define CLK_MOUT_CMU_G3AA_G3AA         37
+#define CLK_MOUT_CMU_G3D_BUSD          38
+#define CLK_MOUT_CMU_G3D_GLB           39
+#define CLK_MOUT_CMU_G3D_SWITCH                40
+#define CLK_MOUT_CMU_GDC_GDC0          41
+#define CLK_MOUT_CMU_GDC_GDC1          42
+#define CLK_MOUT_CMU_GDC_SCSC          43
+#define CLK_MOUT_CMU_HPM               44
+#define CLK_MOUT_CMU_HSI0_BUS          45
+#define CLK_MOUT_CMU_HSI0_DPGTC                46
+#define CLK_MOUT_CMU_HSI0_USB31DRD     47
+#define CLK_MOUT_CMU_HSI0_USBDPDBG     48
+#define CLK_MOUT_CMU_HSI1_BUS          49
+#define CLK_MOUT_CMU_HSI1_PCIE         50
+#define CLK_MOUT_CMU_HSI2_BUS          51
+#define CLK_MOUT_CMU_HSI2_MMC_CARD     52
+#define CLK_MOUT_CMU_HSI2_PCIE         53
+#define CLK_MOUT_CMU_HSI2_UFS_EMBD     54
+#define CLK_MOUT_CMU_IPP_BUS           55
+#define CLK_MOUT_CMU_ITP_BUS           56
+#define CLK_MOUT_CMU_MCSC_ITSC         57
+#define CLK_MOUT_CMU_MCSC_MCSC         58
+#define CLK_MOUT_CMU_MFC_MFC           59
+#define CLK_MOUT_CMU_MIF_BUSP          60
+#define CLK_MOUT_CMU_MIF_SWITCH                61
+#define CLK_MOUT_CMU_MISC_BUS          62
+#define CLK_MOUT_CMU_MISC_SSS          63
+#define CLK_MOUT_CMU_PDP_BUS           64
+#define CLK_MOUT_CMU_PDP_VRA           65
+#define CLK_MOUT_CMU_PERIC0_BUS                66
+#define CLK_MOUT_CMU_PERIC0_IP         67
+#define CLK_MOUT_CMU_PERIC1_BUS                68
+#define CLK_MOUT_CMU_PERIC1_IP         69
+#define CLK_MOUT_CMU_TNR_BUS           70
+#define CLK_MOUT_CMU_TOP_BOOST_OPTION1 71
+#define CLK_MOUT_CMU_TOP_CMUREF                72
+#define CLK_MOUT_CMU_TPU_BUS           73
+#define CLK_MOUT_CMU_TPU_TPU           74
+#define CLK_MOUT_CMU_TPU_TPUCTL                75
+#define CLK_MOUT_CMU_TPU_UART          76
+#define CLK_MOUT_CMU_CMUREF            77
+
+/* CMU_TOP Dividers */
+#define CLK_DOUT_CMU_BO_BUS            78
+#define CLK_DOUT_CMU_BUS0_BUS          79
+#define CLK_DOUT_CMU_BUS1_BUS          80
+#define CLK_DOUT_CMU_BUS2_BUS          81
+#define CLK_DOUT_CMU_CIS_CLK0          82
+#define CLK_DOUT_CMU_CIS_CLK1          83
+#define CLK_DOUT_CMU_CIS_CLK2          84
+#define CLK_DOUT_CMU_CIS_CLK3          85
+#define CLK_DOUT_CMU_CIS_CLK4          86
+#define CLK_DOUT_CMU_CIS_CLK5          87
+#define CLK_DOUT_CMU_CIS_CLK6          88
+#define CLK_DOUT_CMU_CIS_CLK7          89
+#define CLK_DOUT_CMU_CORE_BUS          90
+#define CLK_DOUT_CMU_CPUCL0_DBG                91
+#define CLK_DOUT_CMU_CPUCL0_SWITCH     92
+#define CLK_DOUT_CMU_CPUCL1_SWITCH     93
+#define CLK_DOUT_CMU_CPUCL2_SWITCH     94
+#define CLK_DOUT_CMU_CSIS_BUS          95
+#define CLK_DOUT_CMU_DISP_BUS          96
+#define CLK_DOUT_CMU_DNS_BUS           97
+#define CLK_DOUT_CMU_DPU_BUS           98
+#define CLK_DOUT_CMU_EH_BUS            99
+#define CLK_DOUT_CMU_G2D_G2D           100
+#define CLK_DOUT_CMU_G2D_MSCL          101
+#define CLK_DOUT_CMU_G3AA_G3AA         102
+#define CLK_DOUT_CMU_G3D_BUSD          103
+#define CLK_DOUT_CMU_G3D_GLB           104
+#define CLK_DOUT_CMU_G3D_SWITCH                105
+#define CLK_DOUT_CMU_GDC_GDC0          106
+#define CLK_DOUT_CMU_GDC_GDC1          107
+#define CLK_DOUT_CMU_GDC_SCSC          108
+#define CLK_DOUT_CMU_CMU_HPM           109
+#define CLK_DOUT_CMU_HSI0_BUS          110
+#define CLK_DOUT_CMU_HSI0_DPGTC                111
+#define CLK_DOUT_CMU_HSI0_USB31DRD     112
+#define CLK_DOUT_CMU_HSI0_USBDPDBG     113
+#define CLK_DOUT_CMU_HSI1_BUS          114
+#define CLK_DOUT_CMU_HSI1_PCIE         115
+#define CLK_DOUT_CMU_HSI2_BUS          116
+#define CLK_DOUT_CMU_HSI2_MMC_CARD     117
+#define CLK_DOUT_CMU_HSI2_PCIE         118
+#define CLK_DOUT_CMU_HSI2_UFS_EMBD     119
+#define CLK_DOUT_CMU_IPP_BUS           120
+#define CLK_DOUT_CMU_ITP_BUS           121
+#define CLK_DOUT_CMU_MCSC_ITSC         122
+#define CLK_DOUT_CMU_MCSC_MCSC         123
+#define CLK_DOUT_CMU_MFC_MFC           124
+#define CLK_DOUT_CMU_MIF_BUSP          125
+#define CLK_DOUT_CMU_MISC_BUS          126
+#define CLK_DOUT_CMU_MISC_SSS          127
+#define CLK_DOUT_CMU_OTP               128
+#define CLK_DOUT_CMU_PDP_BUS           129
+#define CLK_DOUT_CMU_PDP_VRA           130
+#define CLK_DOUT_CMU_PERIC0_BUS                131
+#define CLK_DOUT_CMU_PERIC0_IP         132
+#define CLK_DOUT_CMU_PERIC1_BUS                133
+#define CLK_DOUT_CMU_PERIC1_IP         134
+#define CLK_DOUT_CMU_TNR_BUS           135
+#define CLK_DOUT_CMU_TPU_BUS           136
+#define CLK_DOUT_CMU_TPU_TPU           137
+#define CLK_DOUT_CMU_TPU_TPUCTL                138
+#define CLK_DOUT_CMU_TPU_UART          139
+#define CLK_DOUT_CMU_CMU_BOOST         140
+#define CLK_DOUT_CMU_CMU_CMUREF                141
+#define CLK_DOUT_CMU_SHARED0_DIV2      142
+#define CLK_DOUT_CMU_SHARED0_DIV3      143
+#define CLK_DOUT_CMU_SHARED0_DIV4      144
+#define CLK_DOUT_CMU_SHARED0_DIV5      145
+#define CLK_DOUT_CMU_SHARED1_DIV2      146
+#define CLK_DOUT_CMU_SHARED1_DIV3      147
+#define CLK_DOUT_CMU_SHARED1_DIV4      148
+#define CLK_DOUT_CMU_SHARED2_DIV2      149
+#define CLK_DOUT_CMU_SHARED3_DIV2      150
+
+/* CMU_TOP Gates */
+#define CLK_GOUT_CMU_BUS0_BOOST                151
+#define CLK_GOUT_CMU_BUS1_BOOST                152
+#define CLK_GOUT_CMU_BUS2_BOOST                153
+#define CLK_GOUT_CMU_CORE_BOOST                154
+#define CLK_GOUT_CMU_CPUCL0_BOOST      155
+#define CLK_GOUT_CMU_CPUCL1_BOOST      156
+#define CLK_GOUT_CMU_CPUCL2_BOOST      157
+#define CLK_GOUT_CMU_MIF_BOOST         158
+#define CLK_GOUT_CMU_MIF_SWITCH                159
+#define CLK_GOUT_CMU_BO_BUS            160
+#define CLK_GOUT_CMU_BUS0_BUS          161
+#define CLK_GOUT_CMU_BUS1_BUS          162
+#define CLK_GOUT_CMU_BUS2_BUS          163
+#define CLK_GOUT_CMU_CIS_CLK0          164
+#define CLK_GOUT_CMU_CIS_CLK1          165
+#define CLK_GOUT_CMU_CIS_CLK2          166
+#define CLK_GOUT_CMU_CIS_CLK3          167
+#define CLK_GOUT_CMU_CIS_CLK4          168
+#define CLK_GOUT_CMU_CIS_CLK5          169
+#define CLK_GOUT_CMU_CIS_CLK6          170
+#define CLK_GOUT_CMU_CIS_CLK7          171
+#define CLK_GOUT_CMU_CMU_BOOST         172
+#define CLK_GOUT_CMU_CORE_BUS          173
+#define CLK_GOUT_CMU_CPUCL0_DBG                174
+#define CLK_GOUT_CMU_CPUCL0_SWITCH     175
+#define CLK_GOUT_CMU_CPUCL1_SWITCH     176
+#define CLK_GOUT_CMU_CPUCL2_SWITCH     177
+#define CLK_GOUT_CMU_CSIS_BUS          178
+#define CLK_GOUT_CMU_DISP_BUS          179
+#define CLK_GOUT_CMU_DNS_BUS           180
+#define CLK_GOUT_CMU_DPU_BUS           181
+#define CLK_GOUT_CMU_EH_BUS            182
+#define CLK_GOUT_CMU_G2D_G2D           183
+#define CLK_GOUT_CMU_G2D_MSCL          184
+#define CLK_GOUT_CMU_G3AA_G3AA         185
+#define CLK_GOUT_CMU_G3D_BUSD          186
+#define CLK_GOUT_CMU_G3D_GLB           187
+#define CLK_GOUT_CMU_G3D_SWITCH                188
+#define CLK_GOUT_CMU_GDC_GDC0          189
+#define CLK_GOUT_CMU_GDC_GDC1          190
+#define CLK_GOUT_CMU_GDC_SCSC          191
+#define CLK_GOUT_CMU_HPM               192
+#define CLK_GOUT_CMU_HSI0_BUS          193
+#define CLK_GOUT_CMU_HSI0_DPGTC                194
+#define CLK_GOUT_CMU_HSI0_USB31DRD     195
+#define CLK_GOUT_CMU_HSI0_USBDPDBG     196
+#define CLK_GOUT_CMU_HSI1_BUS          197
+#define CLK_GOUT_CMU_HSI1_PCIE         198
+#define CLK_GOUT_CMU_HSI2_BUS          199
+#define CLK_GOUT_CMU_HSI2_MMC_CARD     200
+#define CLK_GOUT_CMU_HSI2_PCIE         201
+#define CLK_GOUT_CMU_HSI2_UFS_EMBD     202
+#define CLK_GOUT_CMU_IPP_BUS           203
+#define CLK_GOUT_CMU_ITP_BUS           204
+#define CLK_GOUT_CMU_MCSC_ITSC         205
+#define CLK_GOUT_CMU_MCSC_MCSC         206
+#define CLK_GOUT_CMU_MFC_MFC           207
+#define CLK_GOUT_CMU_MIF_BUSP          208
+#define CLK_GOUT_CMU_MISC_BUS          209
+#define CLK_GOUT_CMU_MISC_SSS          210
+#define CLK_GOUT_CMU_PDP_BUS           211
+#define CLK_GOUT_CMU_PDP_VRA           212
+#define CLK_GOUT_CMU_G3AA              213
+#define CLK_GOUT_CMU_PERIC0_BUS                214
+#define CLK_GOUT_CMU_PERIC0_IP         215
+#define CLK_GOUT_CMU_PERIC1_BUS                216
+#define CLK_GOUT_CMU_PERIC1_IP         217
+#define CLK_GOUT_CMU_TNR_BUS           218
+#define CLK_GOUT_CMU_TOP_CMUREF                219
+#define CLK_GOUT_CMU_TPU_BUS           220
+#define CLK_GOUT_CMU_TPU_TPU           221
+#define CLK_GOUT_CMU_TPU_TPUCTL                222
+#define CLK_GOUT_CMU_TPU_UART          223
+
+/* CMU_APM */
+#define CLK_MOUT_APM_FUNC                              1
+#define CLK_MOUT_APM_FUNCSRC                           2
+#define CLK_DOUT_APM_BOOST                             3
+#define CLK_DOUT_APM_USI0_UART                         4
+#define CLK_DOUT_APM_USI0_USI                          5
+#define CLK_DOUT_APM_USI1_UART                         6
+#define CLK_GOUT_APM_APM_CMU_APM_PCLK                  7
+#define CLK_GOUT_BUS0_BOOST_OPTION1                    8
+#define CLK_GOUT_CMU_BOOST_OPTION1                     9
+#define CLK_GOUT_CORE_BOOST_OPTION1                    10
+#define CLK_GOUT_APM_FUNC                              11
+#define CLK_GOUT_APM_APBIF_GPIO_ALIVE_PCLK             12
+#define CLK_GOUT_APM_APBIF_GPIO_FAR_ALIVE_PCLK         13
+#define CLK_GOUT_APM_APBIF_PMU_ALIVE_PCLK              14
+#define CLK_GOUT_APM_APBIF_RTC_PCLK                    15
+#define CLK_GOUT_APM_APBIF_TRTC_PCLK                   16
+#define CLK_GOUT_APM_APM_USI0_UART_IPCLK               17
+#define CLK_GOUT_APM_APM_USI0_UART_PCLK                        18
+#define CLK_GOUT_APM_APM_USI0_USI_IPCLK                        19
+#define CLK_GOUT_APM_APM_USI0_USI_PCLK                 20
+#define CLK_GOUT_APM_APM_USI1_UART_IPCLK               21
+#define CLK_GOUT_APM_APM_USI1_UART_PCLK                        22
+#define CLK_GOUT_APM_D_TZPC_APM_PCLK                   23
+#define CLK_GOUT_APM_GPC_APM_PCLK                      24
+#define CLK_GOUT_APM_GREBEINTEGRATION_HCLK             25
+#define CLK_GOUT_APM_INTMEM_ACLK                       26
+#define CLK_GOUT_APM_INTMEM_PCLK                       27
+#define CLK_GOUT_APM_LHM_AXI_G_SWD_I_CLK               28
+#define CLK_GOUT_APM_LHM_AXI_P_AOCAPM_I_CLK            29
+#define CLK_GOUT_APM_LHM_AXI_P_APM_I_CLK               30
+#define CLK_GOUT_APM_LHS_AXI_D_APM_I_CLK               31
+#define CLK_GOUT_APM_LHS_AXI_G_DBGCORE_I_CLK           32
+#define CLK_GOUT_APM_LHS_AXI_G_SCAN2DRAM_I_CLK         33
+#define CLK_GOUT_APM_MAILBOX_APM_AOC_PCLK              34
+#define CLK_GOUT_APM_MAILBOX_APM_AP_PCLK               35
+#define CLK_GOUT_APM_MAILBOX_APM_GSA_PCLK              36
+#define CLK_GOUT_APM_MAILBOX_APM_SWD_PCLK              37
+#define CLK_GOUT_APM_MAILBOX_APM_TPU_PCLK              38
+#define CLK_GOUT_APM_MAILBOX_AP_AOC_PCLK               39
+#define CLK_GOUT_APM_MAILBOX_AP_DBGCORE_PCLK           40
+#define CLK_GOUT_APM_PMU_INTR_GEN_PCLK                 41
+#define CLK_GOUT_APM_ROM_CRC32_HOST_ACLK               42
+#define CLK_GOUT_APM_ROM_CRC32_HOST_PCLK               43
+#define CLK_GOUT_APM_CLK_APM_BUS_CLK                   44
+#define CLK_GOUT_APM_CLK_APM_USI0_UART_CLK             45
+#define CLK_GOUT_APM_CLK_APM_USI0_USI_CLK              46
+#define CLK_GOUT_APM_CLK_APM_USI1_UART_CLK             47
+#define CLK_GOUT_APM_SPEEDY_APM_PCLK                   48
+#define CLK_GOUT_APM_SPEEDY_SUB_APM_PCLK               49
+#define CLK_GOUT_APM_SSMT_D_APM_ACLK                   50
+#define CLK_GOUT_APM_SSMT_D_APM_PCLK                   51
+#define CLK_GOUT_APM_SSMT_G_DBGCORE_ACLK               52
+#define CLK_GOUT_APM_SSMT_G_DBGCORE_PCLK               53
+#define CLK_GOUT_APM_SS_DBGCORE_SS_DBGCORE_HCLK                54
+#define CLK_GOUT_APM_SYSMMU_D_APM_CLK_S2               55
+#define CLK_GOUT_APM_SYSREG_APM_PCLK                   56
+#define CLK_GOUT_APM_UASC_APM_ACLK                     57
+#define CLK_GOUT_APM_UASC_APM_PCLK                     58
+#define CLK_GOUT_APM_UASC_DBGCORE_ACLK                 59
+#define CLK_GOUT_APM_UASC_DBGCORE_PCLK                 60
+#define CLK_GOUT_APM_UASC_G_SWD_ACLK                   61
+#define CLK_GOUT_APM_UASC_G_SWD_PCLK                   62
+#define CLK_GOUT_APM_UASC_P_AOCAPM_ACLK                        63
+#define CLK_GOUT_APM_UASC_P_AOCAPM_PCLK                        64
+#define CLK_GOUT_APM_UASC_P_APM_ACLK                   65
+#define CLK_GOUT_APM_UASC_P_APM_PCLK                   66
+#define CLK_GOUT_APM_WDT_APM_PCLK                      67
+#define CLK_GOUT_APM_XIU_DP_APM_ACLK                   68
+#define CLK_APM_PLL_DIV2_APM                           69
+#define CLK_APM_PLL_DIV4_APM                           70
+#define CLK_APM_PLL_DIV16_APM                          71
+
+/* CMU_MISC */
+#define CLK_MOUT_MISC_BUS_USER                         1
+#define CLK_MOUT_MISC_SSS_USER                         2
+#define CLK_MOUT_MISC_GIC                              3
+#define CLK_DOUT_MISC_BUSP                             4
+#define CLK_DOUT_MISC_GIC                              5
+#define CLK_GOUT_MISC_MISC_CMU_MISC_PCLK               6
+#define CLK_GOUT_MISC_OTP_CON_BIRA_I_OSCCLK            7
+#define CLK_GOUT_MISC_OTP_CON_BISR_I_OSCCLK            8
+#define CLK_GOUT_MISC_OTP_CON_TOP_I_OSCCLK             9
+#define CLK_GOUT_MISC_CLK_MISC_OSCCLK_CLK              10
+#define CLK_GOUT_MISC_ADM_AHB_SSS_HCLKM                        11
+#define CLK_GOUT_MISC_AD_APB_DIT_PCLKM                 12
+#define CLK_GOUT_MISC_AD_APB_PUF_PCLKM                 13
+#define CLK_GOUT_MISC_DIT_ICLKL2A                      14
+#define CLK_GOUT_MISC_D_TZPC_MISC_PCLK                 15
+#define CLK_GOUT_MISC_GIC_GICCLK                       16
+#define CLK_GOUT_MISC_GPC_MISC_PCLK                    17
+#define CLK_GOUT_MISC_LHM_AST_ICC_CPUGIC_I_CLK         18
+#define CLK_GOUT_MISC_LHM_AXI_D_SSS_I_CLK              19
+#define CLK_GOUT_MISC_LHM_AXI_P_GIC_I_CLK              20
+#define CLK_GOUT_MISC_LHM_AXI_P_MISC_I_CLK             21
+#define CLK_GOUT_MISC_LHS_ACEL_D_MISC_I_CLK            22
+#define CLK_GOUT_MISC_LHS_AST_IRI_GICCPU_I_CLK         23
+#define CLK_GOUT_MISC_LHS_AXI_D_SSS_I_CLK              24
+#define CLK_GOUT_MISC_MCT_PCLK                         25
+#define CLK_GOUT_MISC_OTP_CON_BIRA_PCLK                        26
+#define CLK_GOUT_MISC_OTP_CON_BISR_PCLK                        27
+#define CLK_GOUT_MISC_OTP_CON_TOP_PCLK                 28
+#define CLK_GOUT_MISC_PDMA_ACLK                                29
+#define CLK_GOUT_MISC_PPMU_DMA_ACLK                    30
+#define CLK_GOUT_MISC_PPMU_MISC_ACLK                   31
+#define CLK_GOUT_MISC_PPMU_MISC_PCLK                   32
+#define CLK_GOUT_MISC_PUF_I_CLK                                33
+#define CLK_GOUT_MISC_QE_DIT_ACLK                      34
+#define CLK_GOUT_MISC_QE_DIT_PCLK                      35
+#define CLK_GOUT_MISC_QE_PDMA_ACLK                     36
+#define CLK_GOUT_MISC_QE_PDMA_PCLK                     37
+#define CLK_GOUT_MISC_QE_PPMU_DMA_ACLK                 38
+#define CLK_GOUT_MISC_QE_PPMU_DMA_PCLK                 39
+#define CLK_GOUT_MISC_QE_RTIC_ACLK                     40
+#define CLK_GOUT_MISC_QE_RTIC_PCLK                     41
+#define CLK_GOUT_MISC_QE_SPDMA_ACLK                    42
+#define CLK_GOUT_MISC_QE_SPDMA_PCLK                    43
+#define CLK_GOUT_MISC_QE_SSS_ACLK                      44
+#define CLK_GOUT_MISC_QE_SSS_PCLK                      45
+#define CLK_GOUT_MISC_CLK_MISC_BUSD_CLK                        46
+#define CLK_GOUT_MISC_CLK_MISC_BUSP_CLK                        47
+#define CLK_GOUT_MISC_CLK_MISC_GIC_CLK                 48
+#define CLK_GOUT_MISC_CLK_MISC_SSS_CLK                 49
+#define CLK_GOUT_MISC_RTIC_I_ACLK                      50
+#define CLK_GOUT_MISC_RTIC_I_PCLK                      51
+#define CLK_GOUT_MISC_SPDMA_ACLK                       52
+#define CLK_GOUT_MISC_SSMT_DIT_ACLK                    53
+#define CLK_GOUT_MISC_SSMT_DIT_PCLK                    54
+#define CLK_GOUT_MISC_SSMT_PDMA_ACLK                   55
+#define CLK_GOUT_MISC_SSMT_PDMA_PCLK                   56
+#define CLK_GOUT_MISC_SSMT_PPMU_DMA_ACLK               57
+#define CLK_GOUT_MISC_SSMT_PPMU_DMA_PCLK               58
+#define CLK_GOUT_MISC_SSMT_RTIC_ACLK                   59
+#define CLK_GOUT_MISC_SSMT_RTIC_PCLK                   60
+#define CLK_GOUT_MISC_SSMT_SPDMA_ACLK                  61
+#define CLK_GOUT_MISC_SSMT_SPDMA_PCLK                  62
+#define CLK_GOUT_MISC_SSMT_SSS_ACLK                    63
+#define CLK_GOUT_MISC_SSMT_SSS_PCLK                    64
+#define CLK_GOUT_MISC_SSS_I_ACLK                       65
+#define CLK_GOUT_MISC_SSS_I_PCLK                       66
+#define CLK_GOUT_MISC_SYSMMU_MISC_CLK_S2               67
+#define CLK_GOUT_MISC_SYSMMU_SSS_CLK_S1                        68
+#define CLK_GOUT_MISC_SYSREG_MISC_PCLK                 69
+#define CLK_GOUT_MISC_TMU_SUB_PCLK                     70
+#define CLK_GOUT_MISC_TMU_TOP_PCLK                     71
+#define CLK_GOUT_MISC_WDT_CLUSTER0_PCLK                        72
+#define CLK_GOUT_MISC_WDT_CLUSTER1_PCLK                        73
+#define CLK_GOUT_MISC_XIU_D_MISC_ACLK                  74
+
+#endif /* _DT_BINDINGS_CLOCK_GOOGLE_GS101_H */
diff --git a/include/dt-bindings/clock/mediatek,mt7988-clk.h b/include/dt-bindings/clock/mediatek,mt7988-clk.h
new file mode 100644 (file)
index 0000000..63376e4
--- /dev/null
@@ -0,0 +1,280 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023 MediaTek Inc.
+ * Author: Sam Shih <sam.shih@mediatek.com>
+ * Author: Xiufeng Li <Xiufeng.Li@mediatek.com>
+ */
+
+#ifndef _DT_BINDINGS_CLK_MT7988_H
+#define _DT_BINDINGS_CLK_MT7988_H
+
+/* APMIXEDSYS */
+
+#define CLK_APMIXED_NETSYSPLL                  0
+#define CLK_APMIXED_MPLL                       1
+#define CLK_APMIXED_MMPLL                      2
+#define CLK_APMIXED_APLL2                      3
+#define CLK_APMIXED_NET1PLL                    4
+#define CLK_APMIXED_NET2PLL                    5
+#define CLK_APMIXED_WEDMCUPLL                  6
+#define CLK_APMIXED_SGMPLL                     7
+#define CLK_APMIXED_ARM_B                      8
+#define CLK_APMIXED_CCIPLL2_B                  9
+#define CLK_APMIXED_USXGMIIPLL                 10
+#define CLK_APMIXED_MSDCPLL                    11
+
+/* TOPCKGEN */
+
+#define CLK_TOP_XTAL                           0
+#define CLK_TOP_XTAL_D2                                1
+#define CLK_TOP_RTC_32K                                2
+#define CLK_TOP_RTC_32P7K                      3
+#define CLK_TOP_MPLL_D2                                4
+#define CLK_TOP_MPLL_D3_D2                     5
+#define CLK_TOP_MPLL_D4                                6
+#define CLK_TOP_MPLL_D8                                7
+#define CLK_TOP_MPLL_D8_D2                     8
+#define CLK_TOP_MMPLL_D2                       9
+#define CLK_TOP_MMPLL_D3_D5                    10
+#define CLK_TOP_MMPLL_D4                       11
+#define CLK_TOP_MMPLL_D6_D2                    12
+#define CLK_TOP_MMPLL_D8                       13
+#define CLK_TOP_APLL2_D4                       14
+#define CLK_TOP_NET1PLL_D4                     15
+#define CLK_TOP_NET1PLL_D5                     16
+#define CLK_TOP_NET1PLL_D5_D2                  17
+#define CLK_TOP_NET1PLL_D5_D4                  18
+#define CLK_TOP_NET1PLL_D8                     19
+#define CLK_TOP_NET1PLL_D8_D2                  20
+#define CLK_TOP_NET1PLL_D8_D4                  21
+#define CLK_TOP_NET1PLL_D8_D8                  22
+#define CLK_TOP_NET1PLL_D8_D16                 23
+#define CLK_TOP_NET2PLL_D2                     24
+#define CLK_TOP_NET2PLL_D4                     25
+#define CLK_TOP_NET2PLL_D4_D4                  26
+#define CLK_TOP_NET2PLL_D4_D8                  27
+#define CLK_TOP_NET2PLL_D6                     28
+#define CLK_TOP_NET2PLL_D8                     29
+#define CLK_TOP_NETSYS_SEL                     30
+#define CLK_TOP_NETSYS_500M_SEL                        31
+#define CLK_TOP_NETSYS_2X_SEL                  32
+#define CLK_TOP_NETSYS_GSW_SEL                 33
+#define CLK_TOP_ETH_GMII_SEL                   34
+#define CLK_TOP_NETSYS_MCU_SEL                 35
+#define CLK_TOP_NETSYS_PAO_2X_SEL              36
+#define CLK_TOP_EIP197_SEL                     37
+#define CLK_TOP_AXI_INFRA_SEL                  38
+#define CLK_TOP_UART_SEL                       39
+#define CLK_TOP_EMMC_250M_SEL                  40
+#define CLK_TOP_EMMC_400M_SEL                  41
+#define CLK_TOP_SPI_SEL                                42
+#define CLK_TOP_SPIM_MST_SEL                   43
+#define CLK_TOP_NFI1X_SEL                      44
+#define CLK_TOP_SPINFI_SEL                     45
+#define CLK_TOP_PWM_SEL                                46
+#define CLK_TOP_I2C_SEL                                47
+#define CLK_TOP_PCIE_MBIST_250M_SEL            48
+#define CLK_TOP_PEXTP_TL_SEL                   49
+#define CLK_TOP_PEXTP_TL_P1_SEL                        50
+#define CLK_TOP_PEXTP_TL_P2_SEL                        51
+#define CLK_TOP_PEXTP_TL_P3_SEL                        52
+#define CLK_TOP_USB_SYS_SEL                    53
+#define CLK_TOP_USB_SYS_P1_SEL                 54
+#define CLK_TOP_USB_XHCI_SEL                   55
+#define CLK_TOP_USB_XHCI_P1_SEL                        56
+#define CLK_TOP_USB_FRMCNT_SEL                 57
+#define CLK_TOP_USB_FRMCNT_P1_SEL              58
+#define CLK_TOP_AUD_SEL                                59
+#define CLK_TOP_A1SYS_SEL                      60
+#define CLK_TOP_AUD_L_SEL                      61
+#define CLK_TOP_A_TUNER_SEL                    62
+#define CLK_TOP_SSPXTP_SEL                     63
+#define CLK_TOP_USB_PHY_SEL                    64
+#define CLK_TOP_USXGMII_SBUS_0_SEL             65
+#define CLK_TOP_USXGMII_SBUS_1_SEL             66
+#define CLK_TOP_SGM_0_SEL                      67
+#define CLK_TOP_SGM_SBUS_0_SEL                 68
+#define CLK_TOP_SGM_1_SEL                      69
+#define CLK_TOP_SGM_SBUS_1_SEL                 70
+#define CLK_TOP_XFI_PHY_0_XTAL_SEL             71
+#define CLK_TOP_XFI_PHY_1_XTAL_SEL             72
+#define CLK_TOP_SYSAXI_SEL                     73
+#define CLK_TOP_SYSAPB_SEL                     74
+#define CLK_TOP_ETH_REFCK_50M_SEL              75
+#define CLK_TOP_ETH_SYS_200M_SEL               76
+#define CLK_TOP_ETH_SYS_SEL                    77
+#define CLK_TOP_ETH_XGMII_SEL                  78
+#define CLK_TOP_BUS_TOPS_SEL                   79
+#define CLK_TOP_NPU_TOPS_SEL                   80
+#define CLK_TOP_DRAMC_SEL                      81
+#define CLK_TOP_DRAMC_MD32_SEL                 82
+#define CLK_TOP_INFRA_F26M_SEL                 83
+#define CLK_TOP_PEXTP_P0_SEL                   84
+#define CLK_TOP_PEXTP_P1_SEL                   85
+#define CLK_TOP_PEXTP_P2_SEL                   86
+#define CLK_TOP_PEXTP_P3_SEL                   87
+#define CLK_TOP_DA_XTP_GLB_P0_SEL              88
+#define CLK_TOP_DA_XTP_GLB_P1_SEL              89
+#define CLK_TOP_DA_XTP_GLB_P2_SEL              90
+#define CLK_TOP_DA_XTP_GLB_P3_SEL              91
+#define CLK_TOP_CKM_SEL                                92
+#define CLK_TOP_DA_SEL                         93
+#define CLK_TOP_PEXTP_SEL                      94
+#define CLK_TOP_TOPS_P2_26M_SEL                        95
+#define CLK_TOP_MCUSYS_BACKUP_625M_SEL         96
+#define CLK_TOP_NETSYS_SYNC_250M_SEL           97
+#define CLK_TOP_MACSEC_SEL                     98
+#define CLK_TOP_NETSYS_TOPS_400M_SEL           99
+#define CLK_TOP_NETSYS_PPEFB_250M_SEL          100
+#define CLK_TOP_NETSYS_WARP_SEL                        101
+#define CLK_TOP_ETH_MII_SEL                    102
+#define CLK_TOP_NPU_SEL                                103
+#define CLK_TOP_AUD_I2S_M                      104
+
+/* MCUSYS */
+
+#define CLK_MCU_BUS_DIV_SEL                    0
+#define CLK_MCU_ARM_DIV_SEL                    1
+
+/* INFRACFG_AO */
+
+#define CLK_INFRA_MUX_UART0_SEL                        0
+#define CLK_INFRA_MUX_UART1_SEL                        1
+#define CLK_INFRA_MUX_UART2_SEL                        2
+#define CLK_INFRA_MUX_SPI0_SEL                 3
+#define CLK_INFRA_MUX_SPI1_SEL                 4
+#define CLK_INFRA_MUX_SPI2_SEL                 5
+#define CLK_INFRA_PWM_SEL                      6
+#define CLK_INFRA_PWM_CK1_SEL                  7
+#define CLK_INFRA_PWM_CK2_SEL                  8
+#define CLK_INFRA_PWM_CK3_SEL                  9
+#define CLK_INFRA_PWM_CK4_SEL                  10
+#define CLK_INFRA_PWM_CK5_SEL                  11
+#define CLK_INFRA_PWM_CK6_SEL                  12
+#define CLK_INFRA_PWM_CK7_SEL                  13
+#define CLK_INFRA_PWM_CK8_SEL                  14
+#define CLK_INFRA_PCIE_GFMUX_TL_O_P0_SEL       15
+#define CLK_INFRA_PCIE_GFMUX_TL_O_P1_SEL       16
+#define CLK_INFRA_PCIE_GFMUX_TL_O_P2_SEL       17
+#define CLK_INFRA_PCIE_GFMUX_TL_O_P3_SEL       18
+
+/* INFRACFG */
+
+#define CLK_INFRA_PCIE_PERI_26M_CK_P0          19
+#define CLK_INFRA_PCIE_PERI_26M_CK_P1          20
+#define CLK_INFRA_PCIE_PERI_26M_CK_P2          21
+#define CLK_INFRA_PCIE_PERI_26M_CK_P3          22
+#define CLK_INFRA_66M_GPT_BCK                  23
+#define CLK_INFRA_66M_PWM_HCK                  24
+#define CLK_INFRA_66M_PWM_BCK                  25
+#define CLK_INFRA_66M_PWM_CK1                  26
+#define CLK_INFRA_66M_PWM_CK2                  27
+#define CLK_INFRA_66M_PWM_CK3                  28
+#define CLK_INFRA_66M_PWM_CK4                  29
+#define CLK_INFRA_66M_PWM_CK5                  30
+#define CLK_INFRA_66M_PWM_CK6                  31
+#define CLK_INFRA_66M_PWM_CK7                  32
+#define CLK_INFRA_66M_PWM_CK8                  33
+#define CLK_INFRA_133M_CQDMA_BCK               34
+#define CLK_INFRA_66M_AUD_SLV_BCK              35
+#define CLK_INFRA_AUD_26M                      36
+#define CLK_INFRA_AUD_L                                37
+#define CLK_INFRA_AUD_AUD                      38
+#define CLK_INFRA_AUD_EG2                      39
+#define CLK_INFRA_DRAMC_F26M                   40
+#define CLK_INFRA_133M_DBG_ACKM                        41
+#define CLK_INFRA_66M_AP_DMA_BCK               42
+#define CLK_INFRA_66M_SEJ_BCK                  43
+#define CLK_INFRA_PRE_CK_SEJ_F13M              44
+#define CLK_INFRA_26M_THERM_SYSTEM             45
+#define CLK_INFRA_I2C_BCK                      46
+#define CLK_INFRA_52M_UART0_CK                 47
+#define CLK_INFRA_52M_UART1_CK                 48
+#define CLK_INFRA_52M_UART2_CK                 49
+#define CLK_INFRA_NFI                          50
+#define CLK_INFRA_SPINFI                       51
+#define CLK_INFRA_66M_NFI_HCK                  52
+#define CLK_INFRA_104M_SPI0                    53
+#define CLK_INFRA_104M_SPI1                    54
+#define CLK_INFRA_104M_SPI2_BCK                        55
+#define CLK_INFRA_66M_SPI0_HCK                 56
+#define CLK_INFRA_66M_SPI1_HCK                 57
+#define CLK_INFRA_66M_SPI2_HCK                 58
+#define CLK_INFRA_66M_FLASHIF_AXI              59
+#define CLK_INFRA_RTC                          60
+#define CLK_INFRA_26M_ADC_BCK                  61
+#define CLK_INFRA_RC_ADC                       62
+#define CLK_INFRA_MSDC400                      63
+#define CLK_INFRA_MSDC2_HCK                    64
+#define CLK_INFRA_133M_MSDC_0_HCK              65
+#define CLK_INFRA_66M_MSDC_0_HCK               66
+#define CLK_INFRA_133M_CPUM_BCK                        67
+#define CLK_INFRA_BIST2FPC                     68
+#define CLK_INFRA_I2C_X16W_MCK_CK_P1           69
+#define CLK_INFRA_I2C_X16W_PCK_CK_P1           70
+#define CLK_INFRA_133M_USB_HCK                 71
+#define CLK_INFRA_133M_USB_HCK_CK_P1           72
+#define CLK_INFRA_66M_USB_HCK                  73
+#define CLK_INFRA_66M_USB_HCK_CK_P1            74
+#define CLK_INFRA_USB_SYS                      75
+#define CLK_INFRA_USB_SYS_CK_P1                        76
+#define CLK_INFRA_USB_REF                      77
+#define CLK_INFRA_USB_CK_P1                    78
+#define CLK_INFRA_USB_FRMCNT                   79
+#define CLK_INFRA_USB_FRMCNT_CK_P1             80
+#define CLK_INFRA_USB_PIPE                     81
+#define CLK_INFRA_USB_PIPE_CK_P1               82
+#define CLK_INFRA_USB_UTMI                     83
+#define CLK_INFRA_USB_UTMI_CK_P1               84
+#define CLK_INFRA_USB_XHCI                     85
+#define CLK_INFRA_USB_XHCI_CK_P1               86
+#define CLK_INFRA_PCIE_GFMUX_TL_P0             87
+#define CLK_INFRA_PCIE_GFMUX_TL_P1             88
+#define CLK_INFRA_PCIE_GFMUX_TL_P2             89
+#define CLK_INFRA_PCIE_GFMUX_TL_P3             90
+#define CLK_INFRA_PCIE_PIPE_P0                 91
+#define CLK_INFRA_PCIE_PIPE_P1                 92
+#define CLK_INFRA_PCIE_PIPE_P2                 93
+#define CLK_INFRA_PCIE_PIPE_P3                 94
+#define CLK_INFRA_133M_PCIE_CK_P0              95
+#define CLK_INFRA_133M_PCIE_CK_P1              96
+#define CLK_INFRA_133M_PCIE_CK_P2              97
+#define CLK_INFRA_133M_PCIE_CK_P3              98
+
+/* ETHDMA */
+
+#define CLK_ETHDMA_XGP1_EN                     0
+#define CLK_ETHDMA_XGP2_EN                     1
+#define CLK_ETHDMA_XGP3_EN                     2
+#define CLK_ETHDMA_FE_EN                       3
+#define CLK_ETHDMA_GP2_EN                      4
+#define CLK_ETHDMA_GP1_EN                      5
+#define CLK_ETHDMA_GP3_EN                      6
+#define CLK_ETHDMA_ESW_EN                      7
+#define CLK_ETHDMA_CRYPT0_EN                   8
+#define CLK_ETHDMA_NR_CLK                      9
+
+/* SGMIISYS_0 */
+
+#define CLK_SGM0_TX_EN                         0
+#define CLK_SGM0_RX_EN                         1
+#define CLK_SGMII0_NR_CLK                      2
+
+/* SGMIISYS_1 */
+
+#define CLK_SGM1_TX_EN                         0
+#define CLK_SGM1_RX_EN                         1
+#define CLK_SGMII1_NR_CLK                      2
+
+/* ETHWARP */
+
+#define CLK_ETHWARP_WOCPU2_EN                  0
+#define CLK_ETHWARP_WOCPU1_EN                  1
+#define CLK_ETHWARP_WOCPU0_EN                  2
+#define CLK_ETHWARP_NR_CLK                     3
+
+/* XFIPLL */
+#define CLK_XFIPLL_PLL                         0
+#define CLK_XFIPLL_PLL_EN                      1
+
+#endif /* _DT_BINDINGS_CLK_MT7988_H */
index 2d545ed0d35ab36fb833f8d8ec93a3a6a742e009..9a9bc55b49af718f574a28de885ba9fa89aa9989 100644 (file)
 #define GCC_VENUS0_CORE1_VCODEC0_CLK           184
 #define GCC_OXILI_TIMER_CLK                    185
 #define SYSTEM_MM_NOC_BFDCD_CLK_SRC            186
+#define CSI2_CLK_SRC                           187
+#define GCC_CAMSS_CSI2_AHB_CLK                 188
+#define GCC_CAMSS_CSI2_CLK                     189
+#define GCC_CAMSS_CSI2PHY_CLK                  190
+#define GCC_CAMSS_CSI2PIX_CLK                  191
+#define GCC_CAMSS_CSI2RDI_CLK                  192
 
 /* Indexes for GDSCs */
 #define BIMC_GDSC                              0
diff --git a/include/dt-bindings/clock/qcom,qdu1000-ecpricc.h b/include/dt-bindings/clock/qcom,qdu1000-ecpricc.h
new file mode 100644 (file)
index 0000000..731e404
--- /dev/null
@@ -0,0 +1,147 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_ECPRI_CC_QDU1000_H
+#define _DT_BINDINGS_CLK_QCOM_ECPRI_CC_QDU1000_H
+
+/* ECPRI_CC clocks */
+#define ECPRI_CC_PLL0                                          0
+#define ECPRI_CC_PLL1                                          1
+#define ECPRI_CC_ECPRI_CG_CLK                                  2
+#define ECPRI_CC_ECPRI_CLK_SRC                                 3
+#define ECPRI_CC_ECPRI_DMA_CLK                                 4
+#define ECPRI_CC_ECPRI_DMA_CLK_SRC                             5
+#define ECPRI_CC_ECPRI_DMA_NOC_CLK                             6
+#define ECPRI_CC_ECPRI_FAST_CLK                                        7
+#define ECPRI_CC_ECPRI_FAST_CLK_SRC                            8
+#define ECPRI_CC_ECPRI_FAST_DIV2_CLK                           9
+#define ECPRI_CC_ECPRI_FAST_DIV2_CLK_SRC                       10
+#define ECPRI_CC_ECPRI_FAST_DIV2_NOC_CLK                       11
+#define ECPRI_CC_ECPRI_FR_CLK                                  12
+#define ECPRI_CC_ECPRI_ORAN_CLK_SRC                            13
+#define ECPRI_CC_ECPRI_ORAN_DIV2_CLK                           14
+#define ECPRI_CC_ETH_100G_C2C0_HM_FF_CLK_SRC                   15
+#define ECPRI_CC_ETH_100G_C2C0_UDP_FIFO_CLK                    16
+#define ECPRI_CC_ETH_100G_C2C1_UDP_FIFO_CLK                    17
+#define ECPRI_CC_ETH_100G_C2C_0_HM_FF_0_CLK                    18
+#define ECPRI_CC_ETH_100G_C2C_0_HM_FF_1_CLK                    19
+#define ECPRI_CC_ETH_100G_C2C_HM_FF_0_DIV_CLK_SRC              20
+#define ECPRI_CC_ETH_100G_C2C_HM_FF_1_DIV_CLK_SRC              21
+#define ECPRI_CC_ETH_100G_C2C_HM_MACSEC_CLK                    22
+#define ECPRI_CC_ETH_100G_C2C_HM_MACSEC_CLK_SRC                        23
+#define ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_0_CLK                  24
+#define ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_0_DIV_CLK_SRC          25
+#define ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_1_CLK                  26
+#define ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_1_DIV_CLK_SRC          27
+#define ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_CLK_SRC                        28
+#define ECPRI_CC_ETH_100G_DBG_C2C_UDP_FIFO_CLK                 29
+#define ECPRI_CC_ETH_100G_FH0_HM_FF_CLK_SRC                    30
+#define ECPRI_CC_ETH_100G_FH0_MACSEC_CLK_SRC                   31
+#define ECPRI_CC_ETH_100G_FH1_HM_FF_CLK_SRC                    32
+#define ECPRI_CC_ETH_100G_FH1_MACSEC_CLK_SRC                   33
+#define ECPRI_CC_ETH_100G_FH2_HM_FF_CLK_SRC                    34
+#define ECPRI_CC_ETH_100G_FH2_MACSEC_CLK_SRC                   35
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_0_CLK                     36
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_0_DIV_CLK_SRC             37
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_1_CLK                     38
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_1_DIV_CLK_SRC             39
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_2_CLK                     40
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_2_DIV_CLK_SRC             41
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_3_CLK                     42
+#define ECPRI_CC_ETH_100G_FH_0_HM_FF_3_DIV_CLK_SRC             43
+#define ECPRI_CC_ETH_100G_FH_0_UDP_FIFO_CLK                    44
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_0_CLK                     45
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_0_DIV_CLK_SRC             46
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_1_CLK                     47
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_1_DIV_CLK_SRC             48
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_2_CLK                     49
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_2_DIV_CLK_SRC             50
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_3_CLK                     51
+#define ECPRI_CC_ETH_100G_FH_1_HM_FF_3_DIV_CLK_SRC             52
+#define ECPRI_CC_ETH_100G_FH_1_UDP_FIFO_CLK                    53
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_0_CLK                     54
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_0_DIV_CLK_SRC             55
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_1_CLK                     56
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_1_DIV_CLK_SRC             57
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_2_CLK                     58
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_2_DIV_CLK_SRC             59
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_3_CLK                     60
+#define ECPRI_CC_ETH_100G_FH_2_HM_FF_3_DIV_CLK_SRC             61
+#define ECPRI_CC_ETH_100G_FH_2_UDP_FIFO_CLK                    62
+#define ECPRI_CC_ETH_100G_FH_MACSEC_0_CLK                      63
+#define ECPRI_CC_ETH_100G_FH_MACSEC_1_CLK                      64
+#define ECPRI_CC_ETH_100G_FH_MACSEC_2_CLK                      65
+#define ECPRI_CC_ETH_100G_MAC_C2C_HM_REF_CLK                   66
+#define ECPRI_CC_ETH_100G_MAC_C2C_HM_REF_CLK_SRC               67
+#define ECPRI_CC_ETH_100G_MAC_DBG_C2C_HM_REF_CLK               68
+#define ECPRI_CC_ETH_100G_MAC_DBG_C2C_HM_REF_CLK_SRC           69
+#define ECPRI_CC_ETH_100G_MAC_FH0_HM_REF_CLK                   70
+#define ECPRI_CC_ETH_100G_MAC_FH0_HM_REF_CLK_SRC               71
+#define ECPRI_CC_ETH_100G_MAC_FH1_HM_REF_CLK                   72
+#define ECPRI_CC_ETH_100G_MAC_FH1_HM_REF_CLK_SRC               73
+#define ECPRI_CC_ETH_100G_MAC_FH2_HM_REF_CLK                   74
+#define ECPRI_CC_ETH_100G_MAC_FH2_HM_REF_CLK_SRC               75
+#define ECPRI_CC_ETH_DBG_NFAPI_AXI_CLK                         76
+#define ECPRI_CC_ETH_DBG_NOC_AXI_CLK                           77
+#define ECPRI_CC_ETH_PHY_0_OCK_SRAM_CLK                                78
+#define ECPRI_CC_ETH_PHY_1_OCK_SRAM_CLK                                79
+#define ECPRI_CC_ETH_PHY_2_OCK_SRAM_CLK                                80
+#define ECPRI_CC_ETH_PHY_3_OCK_SRAM_CLK                                81
+#define ECPRI_CC_ETH_PHY_4_OCK_SRAM_CLK                                82
+#define ECPRI_CC_MSS_EMAC_CLK                                  83
+#define ECPRI_CC_MSS_EMAC_CLK_SRC                              84
+#define ECPRI_CC_MSS_ORAN_CLK                                  85
+#define ECPRI_CC_PHY0_LANE0_RX_CLK                             86
+#define ECPRI_CC_PHY0_LANE0_TX_CLK                             87
+#define ECPRI_CC_PHY0_LANE1_RX_CLK                             88
+#define ECPRI_CC_PHY0_LANE1_TX_CLK                             89
+#define ECPRI_CC_PHY0_LANE2_RX_CLK                             90
+#define ECPRI_CC_PHY0_LANE2_TX_CLK                             91
+#define ECPRI_CC_PHY0_LANE3_RX_CLK                             92
+#define ECPRI_CC_PHY0_LANE3_TX_CLK                             93
+#define ECPRI_CC_PHY1_LANE0_RX_CLK                             94
+#define ECPRI_CC_PHY1_LANE0_TX_CLK                             95
+#define ECPRI_CC_PHY1_LANE1_RX_CLK                             96
+#define ECPRI_CC_PHY1_LANE1_TX_CLK                             97
+#define ECPRI_CC_PHY1_LANE2_RX_CLK                             98
+#define ECPRI_CC_PHY1_LANE2_TX_CLK                             99
+#define ECPRI_CC_PHY1_LANE3_RX_CLK                             100
+#define ECPRI_CC_PHY1_LANE3_TX_CLK                             101
+#define ECPRI_CC_PHY2_LANE0_RX_CLK                             102
+#define ECPRI_CC_PHY2_LANE0_TX_CLK                             103
+#define ECPRI_CC_PHY2_LANE1_RX_CLK                             104
+#define ECPRI_CC_PHY2_LANE1_TX_CLK                             105
+#define ECPRI_CC_PHY2_LANE2_RX_CLK                             106
+#define ECPRI_CC_PHY2_LANE2_TX_CLK                             107
+#define ECPRI_CC_PHY2_LANE3_RX_CLK                             108
+#define ECPRI_CC_PHY2_LANE3_TX_CLK                             109
+#define ECPRI_CC_PHY3_LANE0_RX_CLK                             110
+#define ECPRI_CC_PHY3_LANE0_TX_CLK                             111
+#define ECPRI_CC_PHY3_LANE1_RX_CLK                             112
+#define ECPRI_CC_PHY3_LANE1_TX_CLK                             113
+#define ECPRI_CC_PHY3_LANE2_RX_CLK                             114
+#define ECPRI_CC_PHY3_LANE2_TX_CLK                             115
+#define ECPRI_CC_PHY3_LANE3_RX_CLK                             116
+#define ECPRI_CC_PHY3_LANE3_TX_CLK                             117
+#define ECPRI_CC_PHY4_LANE0_RX_CLK                             118
+#define ECPRI_CC_PHY4_LANE0_TX_CLK                             119
+#define ECPRI_CC_PHY4_LANE1_RX_CLK                             120
+#define ECPRI_CC_PHY4_LANE1_TX_CLK                             121
+#define ECPRI_CC_PHY4_LANE2_RX_CLK                             122
+#define ECPRI_CC_PHY4_LANE2_TX_CLK                             123
+#define ECPRI_CC_PHY4_LANE3_RX_CLK                             124
+#define ECPRI_CC_PHY4_LANE3_TX_CLK                             125
+
+/* ECPRI_CC resets */
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ECPRI_SS_BCR             0
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_C2C_BCR              1
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH0_BCR              2
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH1_BCR              3
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH2_BCR              4
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_WRAPPER_TOP_BCR      5
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_MODEM_BCR                        6
+#define ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_NOC_BCR                  7
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sc8280xp-camcc.h b/include/dt-bindings/clock/qcom,sc8280xp-camcc.h
new file mode 100644 (file)
index 0000000..ea5ec73
--- /dev/null
@@ -0,0 +1,179 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Ltd.
+ */
+
+#ifndef __DT_BINDINGS_CLK_QCOM_CAMCC_SC8280XP_H__
+#define __DT_BINDINGS_CLK_QCOM_CAMCC_SC8280XP_H__
+
+/* CAMCC clocks */
+#define CAMCC_PLL0                                     0
+#define CAMCC_PLL0_OUT_EVEN                            1
+#define CAMCC_PLL0_OUT_ODD                             2
+#define CAMCC_PLL1                                     3
+#define CAMCC_PLL1_OUT_EVEN                            4
+#define CAMCC_PLL2                                     5
+#define CAMCC_PLL3                                     6
+#define CAMCC_PLL3_OUT_EVEN                            7
+#define CAMCC_PLL4                                     8
+#define CAMCC_PLL4_OUT_EVEN                            9
+#define CAMCC_PLL5                                     10
+#define CAMCC_PLL5_OUT_EVEN                            11
+#define CAMCC_PLL6                                     12
+#define CAMCC_PLL6_OUT_EVEN                            13
+#define CAMCC_PLL7                                     14
+#define CAMCC_PLL7_OUT_EVEN                            15
+#define CAMCC_PLL7_OUT_ODD                             16
+#define CAMCC_BPS_AHB_CLK                              17
+#define CAMCC_BPS_AREG_CLK                             18
+#define CAMCC_BPS_AXI_CLK                              19
+#define CAMCC_BPS_CLK                                  20
+#define CAMCC_BPS_CLK_SRC                              21
+#define CAMCC_CAMNOC_AXI_CLK                           22
+#define CAMCC_CAMNOC_AXI_CLK_SRC                       23
+#define CAMCC_CAMNOC_DCD_XO_CLK                                24
+#define CAMCC_CCI_0_CLK                                        25
+#define CAMCC_CCI_0_CLK_SRC                            26
+#define CAMCC_CCI_1_CLK                                        27
+#define CAMCC_CCI_1_CLK_SRC                            28
+#define CAMCC_CCI_2_CLK                                        29
+#define CAMCC_CCI_2_CLK_SRC                            30
+#define CAMCC_CCI_3_CLK                                        31
+#define CAMCC_CCI_3_CLK_SRC                            32
+#define CAMCC_CORE_AHB_CLK                             33
+#define CAMCC_CPAS_AHB_CLK                             34
+#define CAMCC_CPHY_RX_CLK_SRC                          35
+#define CAMCC_CSI0PHYTIMER_CLK                         36
+#define CAMCC_CSI0PHYTIMER_CLK_SRC                     37
+#define CAMCC_CSI1PHYTIMER_CLK                         38
+#define CAMCC_CSI1PHYTIMER_CLK_SRC                     39
+#define CAMCC_CSI2PHYTIMER_CLK                         40
+#define CAMCC_CSI2PHYTIMER_CLK_SRC                     41
+#define CAMCC_CSI3PHYTIMER_CLK                         42
+#define CAMCC_CSI3PHYTIMER_CLK_SRC                     43
+#define CAMCC_CSIPHY0_CLK                              44
+#define CAMCC_CSIPHY1_CLK                              45
+#define CAMCC_CSIPHY2_CLK                              46
+#define CAMCC_CSIPHY3_CLK                              47
+#define CAMCC_FAST_AHB_CLK_SRC                         48
+#define CAMCC_GDSC_CLK                                 49
+#define CAMCC_ICP_AHB_CLK                              50
+#define CAMCC_ICP_CLK                                  51
+#define CAMCC_ICP_CLK_SRC                              52
+#define CAMCC_IFE_0_AXI_CLK                            53
+#define CAMCC_IFE_0_CLK                                        54
+#define CAMCC_IFE_0_CLK_SRC                            55
+#define CAMCC_IFE_0_CPHY_RX_CLK                                56
+#define CAMCC_IFE_0_CSID_CLK                           57
+#define CAMCC_IFE_0_CSID_CLK_SRC                       58
+#define CAMCC_IFE_0_DSP_CLK                            59
+#define CAMCC_IFE_1_AXI_CLK                            60
+#define CAMCC_IFE_1_CLK                                        61
+#define CAMCC_IFE_1_CLK_SRC                            62
+#define CAMCC_IFE_1_CPHY_RX_CLK                                63
+#define CAMCC_IFE_1_CSID_CLK                           64
+#define CAMCC_IFE_1_CSID_CLK_SRC                       65
+#define CAMCC_IFE_1_DSP_CLK                            66
+#define CAMCC_IFE_2_AXI_CLK                            67
+#define CAMCC_IFE_2_CLK                                        68
+#define CAMCC_IFE_2_CLK_SRC                            69
+#define CAMCC_IFE_2_CPHY_RX_CLK                                70
+#define CAMCC_IFE_2_CSID_CLK                           71
+#define CAMCC_IFE_2_CSID_CLK_SRC                       72
+#define CAMCC_IFE_2_DSP_CLK                            73
+#define CAMCC_IFE_3_AXI_CLK                            74
+#define CAMCC_IFE_3_CLK                                        75
+#define CAMCC_IFE_3_CLK_SRC                            76
+#define CAMCC_IFE_3_CPHY_RX_CLK                                77
+#define CAMCC_IFE_3_CSID_CLK                           78
+#define CAMCC_IFE_3_CSID_CLK_SRC                       79
+#define CAMCC_IFE_3_DSP_CLK                            80
+#define CAMCC_IFE_LITE_0_CLK                           81
+#define CAMCC_IFE_LITE_0_CLK_SRC                       82
+#define CAMCC_IFE_LITE_0_CPHY_RX_CLK                   83
+#define CAMCC_IFE_LITE_0_CSID_CLK                      84
+#define CAMCC_IFE_LITE_0_CSID_CLK_SRC                  85
+#define CAMCC_IFE_LITE_1_CLK                           86
+#define CAMCC_IFE_LITE_1_CLK_SRC                       87
+#define CAMCC_IFE_LITE_1_CPHY_RX_CLK                   88
+#define CAMCC_IFE_LITE_1_CSID_CLK                      89
+#define CAMCC_IFE_LITE_1_CSID_CLK_SRC                  90
+#define CAMCC_IFE_LITE_2_CLK                           91
+#define CAMCC_IFE_LITE_2_CLK_SRC                       92
+#define CAMCC_IFE_LITE_2_CPHY_RX_CLK                   93
+#define CAMCC_IFE_LITE_2_CSID_CLK                      94
+#define CAMCC_IFE_LITE_2_CSID_CLK_SRC                  95
+#define CAMCC_IFE_LITE_3_CLK                           96
+#define CAMCC_IFE_LITE_3_CLK_SRC                       97
+#define CAMCC_IFE_LITE_3_CPHY_RX_CLK                   98
+#define CAMCC_IFE_LITE_3_CSID_CLK                      99
+#define CAMCC_IFE_LITE_3_CSID_CLK_SRC                  100
+#define CAMCC_IPE_0_AHB_CLK                            101
+#define CAMCC_IPE_0_AREG_CLK                           102
+#define CAMCC_IPE_0_AXI_CLK                            103
+#define CAMCC_IPE_0_CLK                                        104
+#define CAMCC_IPE_0_CLK_SRC                            105
+#define CAMCC_IPE_1_AHB_CLK                            106
+#define CAMCC_IPE_1_AREG_CLK                           107
+#define CAMCC_IPE_1_AXI_CLK                            108
+#define CAMCC_IPE_1_CLK                                        109
+#define CAMCC_JPEG_CLK                                 110
+#define CAMCC_JPEG_CLK_SRC                             111
+#define CAMCC_LRME_CLK                                 112
+#define CAMCC_LRME_CLK_SRC                             113
+#define CAMCC_MCLK0_CLK                                        114
+#define CAMCC_MCLK0_CLK_SRC                            115
+#define CAMCC_MCLK1_CLK                                        116
+#define CAMCC_MCLK1_CLK_SRC                            117
+#define CAMCC_MCLK2_CLK                                        118
+#define CAMCC_MCLK2_CLK_SRC                            119
+#define CAMCC_MCLK3_CLK                                        120
+#define CAMCC_MCLK3_CLK_SRC                            121
+#define CAMCC_MCLK4_CLK                                        122
+#define CAMCC_MCLK4_CLK_SRC                            123
+#define CAMCC_MCLK5_CLK                                        124
+#define CAMCC_MCLK5_CLK_SRC                            125
+#define CAMCC_MCLK6_CLK                                        126
+#define CAMCC_MCLK6_CLK_SRC                            127
+#define CAMCC_MCLK7_CLK                                        128
+#define CAMCC_MCLK7_CLK_SRC                            129
+#define CAMCC_SLEEP_CLK                                        130
+#define CAMCC_SLEEP_CLK_SRC                            131
+#define CAMCC_SLOW_AHB_CLK_SRC                         132
+#define CAMCC_XO_CLK_SRC                               133
+
+/* CAMCC resets */
+#define CAMCC_BPS_BCR                                  0
+#define CAMCC_CAMNOC_BCR                               1
+#define CAMCC_CCI_BCR                                  2
+#define CAMCC_CPAS_BCR                                 3
+#define CAMCC_CSI0PHY_BCR                              4
+#define CAMCC_CSI1PHY_BCR                              5
+#define CAMCC_CSI2PHY_BCR                              6
+#define CAMCC_CSI3PHY_BCR                              7
+#define CAMCC_ICP_BCR                                  8
+#define CAMCC_IFE_0_BCR                                        9
+#define CAMCC_IFE_1_BCR                                        10
+#define CAMCC_IFE_2_BCR                                        11
+#define CAMCC_IFE_3_BCR                                        12
+#define CAMCC_IFE_LITE_0_BCR                           13
+#define CAMCC_IFE_LITE_1_BCR                           14
+#define CAMCC_IFE_LITE_2_BCR                           15
+#define CAMCC_IFE_LITE_3_BCR                           16
+#define CAMCC_IPE_0_BCR                                        17
+#define CAMCC_IPE_1_BCR                                        18
+#define CAMCC_JPEG_BCR                                 19
+#define CAMCC_LRME_BCR                                 20
+
+/* CAMCC GDSCRs */
+#define BPS_GDSC                                       0
+#define IFE_0_GDSC                                     1
+#define IFE_1_GDSC                                     2
+#define IFE_2_GDSC                                     3
+#define IFE_3_GDSC                                     4
+#define IPE_0_GDSC                                     5
+#define IPE_1_GDSC                                     6
+#define TITAN_TOP_GDSC                                 7
+
+#endif /* __DT_BINDINGS_CLK_QCOM_CAMCC_SC8280XP_H__ */
diff --git a/include/dt-bindings/clock/qcom,sm8650-dispcc.h b/include/dt-bindings/clock/qcom,sm8650-dispcc.h
new file mode 100644 (file)
index 0000000..b0a668b
--- /dev/null
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved
+ * Copyright (c) 2023, Linaro Ltd.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_SM8650_DISP_CC_H
+#define _DT_BINDINGS_CLK_QCOM_SM8650_DISP_CC_H
+
+/* DISP_CC clocks */
+#define DISP_CC_MDSS_ACCU_CLK                                  0
+#define DISP_CC_MDSS_AHB1_CLK                                  1
+#define DISP_CC_MDSS_AHB_CLK                                   2
+#define DISP_CC_MDSS_AHB_CLK_SRC                               3
+#define DISP_CC_MDSS_BYTE0_CLK                                 4
+#define DISP_CC_MDSS_BYTE0_CLK_SRC                             5
+#define DISP_CC_MDSS_BYTE0_DIV_CLK_SRC                         6
+#define DISP_CC_MDSS_BYTE0_INTF_CLK                            7
+#define DISP_CC_MDSS_BYTE1_CLK                                 8
+#define DISP_CC_MDSS_BYTE1_CLK_SRC                             9
+#define DISP_CC_MDSS_BYTE1_DIV_CLK_SRC                         10
+#define DISP_CC_MDSS_BYTE1_INTF_CLK                            11
+#define DISP_CC_MDSS_DPTX0_AUX_CLK                             12
+#define DISP_CC_MDSS_DPTX0_AUX_CLK_SRC                         13
+#define DISP_CC_MDSS_DPTX0_CRYPTO_CLK                          14
+#define DISP_CC_MDSS_DPTX0_LINK_CLK                            15
+#define DISP_CC_MDSS_DPTX0_LINK_CLK_SRC                                16
+#define DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC                    17
+#define DISP_CC_MDSS_DPTX0_LINK_INTF_CLK                       18
+#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK                          19
+#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC                      20
+#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK                          21
+#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC                      22
+#define DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK            23
+#define DISP_CC_MDSS_DPTX1_AUX_CLK                             24
+#define DISP_CC_MDSS_DPTX1_AUX_CLK_SRC                         25
+#define DISP_CC_MDSS_DPTX1_CRYPTO_CLK                          26
+#define DISP_CC_MDSS_DPTX1_LINK_CLK                            27
+#define DISP_CC_MDSS_DPTX1_LINK_CLK_SRC                                28
+#define DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC                    29
+#define DISP_CC_MDSS_DPTX1_LINK_INTF_CLK                       30
+#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK                          31
+#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC                      32
+#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK                          33
+#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC                      34
+#define DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK            35
+#define DISP_CC_MDSS_DPTX2_AUX_CLK                             36
+#define DISP_CC_MDSS_DPTX2_AUX_CLK_SRC                         37
+#define DISP_CC_MDSS_DPTX2_CRYPTO_CLK                          38
+#define DISP_CC_MDSS_DPTX2_LINK_CLK                            39
+#define DISP_CC_MDSS_DPTX2_LINK_CLK_SRC                                40
+#define DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC                    41
+#define DISP_CC_MDSS_DPTX2_LINK_INTF_CLK                       42
+#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK                          43
+#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC                      44
+#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK                          45
+#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC                      46
+#define DISP_CC_MDSS_DPTX3_AUX_CLK                             47
+#define DISP_CC_MDSS_DPTX3_AUX_CLK_SRC                         48
+#define DISP_CC_MDSS_DPTX3_CRYPTO_CLK                          49
+#define DISP_CC_MDSS_DPTX3_LINK_CLK                            50
+#define DISP_CC_MDSS_DPTX3_LINK_CLK_SRC                                51
+#define DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC                    52
+#define DISP_CC_MDSS_DPTX3_LINK_INTF_CLK                       53
+#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK                          54
+#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC                      55
+#define DISP_CC_MDSS_ESC0_CLK                                  56
+#define DISP_CC_MDSS_ESC0_CLK_SRC                              57
+#define DISP_CC_MDSS_ESC1_CLK                                  58
+#define DISP_CC_MDSS_ESC1_CLK_SRC                              59
+#define DISP_CC_MDSS_MDP1_CLK                                  60
+#define DISP_CC_MDSS_MDP_CLK                                   61
+#define DISP_CC_MDSS_MDP_CLK_SRC                               62
+#define DISP_CC_MDSS_MDP_LUT1_CLK                              63
+#define DISP_CC_MDSS_MDP_LUT_CLK                               64
+#define DISP_CC_MDSS_NON_GDSC_AHB_CLK                          65
+#define DISP_CC_MDSS_PCLK0_CLK                                 66
+#define DISP_CC_MDSS_PCLK0_CLK_SRC                             67
+#define DISP_CC_MDSS_PCLK1_CLK                                 68
+#define DISP_CC_MDSS_PCLK1_CLK_SRC                             69
+#define DISP_CC_MDSS_RSCC_AHB_CLK                              70
+#define DISP_CC_MDSS_RSCC_VSYNC_CLK                            71
+#define DISP_CC_MDSS_VSYNC1_CLK                                        72
+#define DISP_CC_MDSS_VSYNC_CLK                                 73
+#define DISP_CC_MDSS_VSYNC_CLK_SRC                             74
+#define DISP_CC_PLL0                                           75
+#define DISP_CC_PLL1                                           76
+#define DISP_CC_SLEEP_CLK                                      77
+#define DISP_CC_SLEEP_CLK_SRC                                  78
+#define DISP_CC_XO_CLK                                         79
+#define DISP_CC_XO_CLK_SRC                                     80
+
+/* DISP_CC resets */
+#define DISP_CC_MDSS_CORE_BCR                                  0
+#define DISP_CC_MDSS_CORE_INT2_BCR                             1
+#define DISP_CC_MDSS_RSCC_BCR                                  2
+
+/* DISP_CC GDSCR */
+#define MDSS_GDSC                                              0
+#define MDSS_INT2_GDSC                                         1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8650-gcc.h b/include/dt-bindings/clock/qcom,sm8650-gcc.h
new file mode 100644 (file)
index 0000000..0c543ba
--- /dev/null
@@ -0,0 +1,254 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GCC_SM8650_H
+#define _DT_BINDINGS_CLK_QCOM_GCC_SM8650_H
+
+/* GCC clocks */
+#define GCC_AGGRE_NOC_PCIE_AXI_CLK                             0
+#define GCC_AGGRE_UFS_PHY_AXI_CLK                              1
+#define GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK                       2
+#define GCC_AGGRE_USB3_PRIM_AXI_CLK                            3
+#define GCC_BOOT_ROM_AHB_CLK                                   4
+#define GCC_CAMERA_AHB_CLK                                     5
+#define GCC_CAMERA_HF_AXI_CLK                                  6
+#define GCC_CAMERA_SF_AXI_CLK                                  7
+#define GCC_CAMERA_XO_CLK                                      8
+#define GCC_CFG_NOC_PCIE_ANOC_AHB_CLK                          9
+#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK                          10
+#define GCC_CNOC_PCIE_SF_AXI_CLK                               11
+#define GCC_DDRSS_GPU_AXI_CLK                                  12
+#define GCC_DDRSS_PCIE_SF_QTB_CLK                              13
+#define GCC_DISP_AHB_CLK                                       14
+#define GCC_DISP_HF_AXI_CLK                                    15
+#define GCC_DISP_XO_CLK                                                16
+#define GCC_GP1_CLK                                            17
+#define GCC_GP1_CLK_SRC                                                18
+#define GCC_GP2_CLK                                            19
+#define GCC_GP2_CLK_SRC                                                20
+#define GCC_GP3_CLK                                            21
+#define GCC_GP3_CLK_SRC                                                22
+#define GCC_GPLL0                                              23
+#define GCC_GPLL0_OUT_EVEN                                     24
+#define GCC_GPLL1                                              25
+#define GCC_GPLL3                                              26
+#define GCC_GPLL4                                              27
+#define GCC_GPLL6                                              28
+#define GCC_GPLL7                                              29
+#define GCC_GPLL9                                              30
+#define GCC_GPU_CFG_AHB_CLK                                    31
+#define GCC_GPU_GPLL0_CLK_SRC                                  32
+#define GCC_GPU_GPLL0_DIV_CLK_SRC                              33
+#define GCC_GPU_MEMNOC_GFX_CLK                                 34
+#define GCC_GPU_SNOC_DVM_GFX_CLK                               35
+#define GCC_PCIE_0_AUX_CLK                                     36
+#define GCC_PCIE_0_AUX_CLK_SRC                                 37
+#define GCC_PCIE_0_CFG_AHB_CLK                                 38
+#define GCC_PCIE_0_MSTR_AXI_CLK                                        39
+#define GCC_PCIE_0_PHY_RCHNG_CLK                               40
+#define GCC_PCIE_0_PHY_RCHNG_CLK_SRC                           41
+#define GCC_PCIE_0_PIPE_CLK                                    42
+#define GCC_PCIE_0_PIPE_CLK_SRC                                        43
+#define GCC_PCIE_0_SLV_AXI_CLK                                 44
+#define GCC_PCIE_0_SLV_Q2A_AXI_CLK                             45
+#define GCC_PCIE_1_AUX_CLK                                     46
+#define GCC_PCIE_1_AUX_CLK_SRC                                 47
+#define GCC_PCIE_1_CFG_AHB_CLK                                 48
+#define GCC_PCIE_1_MSTR_AXI_CLK                                        49
+#define GCC_PCIE_1_PHY_AUX_CLK                                 50
+#define GCC_PCIE_1_PHY_AUX_CLK_SRC                             51
+#define GCC_PCIE_1_PHY_RCHNG_CLK                               52
+#define GCC_PCIE_1_PHY_RCHNG_CLK_SRC                           53
+#define GCC_PCIE_1_PIPE_CLK                                    54
+#define GCC_PCIE_1_PIPE_CLK_SRC                                        55
+#define GCC_PCIE_1_SLV_AXI_CLK                                 56
+#define GCC_PCIE_1_SLV_Q2A_AXI_CLK                             57
+#define GCC_PDM2_CLK                                           58
+#define GCC_PDM2_CLK_SRC                                       59
+#define GCC_PDM_AHB_CLK                                                60
+#define GCC_PDM_XO4_CLK                                                61
+#define GCC_QMIP_CAMERA_NRT_AHB_CLK                            62
+#define GCC_QMIP_CAMERA_RT_AHB_CLK                             63
+#define GCC_QMIP_DISP_AHB_CLK                                  64
+#define GCC_QMIP_GPU_AHB_CLK                                   65
+#define GCC_QMIP_PCIE_AHB_CLK                                  66
+#define GCC_QMIP_VIDEO_CV_CPU_AHB_CLK                          67
+#define GCC_QMIP_VIDEO_CVP_AHB_CLK                             68
+#define GCC_QMIP_VIDEO_V_CPU_AHB_CLK                           69
+#define GCC_QMIP_VIDEO_VCODEC_AHB_CLK                          70
+#define GCC_QUPV3_I2C_CORE_CLK                                 71
+#define GCC_QUPV3_I2C_S0_CLK                                   72
+#define GCC_QUPV3_I2C_S0_CLK_SRC                               73
+#define GCC_QUPV3_I2C_S1_CLK                                   74
+#define GCC_QUPV3_I2C_S1_CLK_SRC                               75
+#define GCC_QUPV3_I2C_S2_CLK                                   76
+#define GCC_QUPV3_I2C_S2_CLK_SRC                               77
+#define GCC_QUPV3_I2C_S3_CLK                                   78
+#define GCC_QUPV3_I2C_S3_CLK_SRC                               79
+#define GCC_QUPV3_I2C_S4_CLK                                   80
+#define GCC_QUPV3_I2C_S4_CLK_SRC                               81
+#define GCC_QUPV3_I2C_S5_CLK                                   82
+#define GCC_QUPV3_I2C_S5_CLK_SRC                               83
+#define GCC_QUPV3_I2C_S6_CLK                                   84
+#define GCC_QUPV3_I2C_S6_CLK_SRC                               85
+#define GCC_QUPV3_I2C_S7_CLK                                   86
+#define GCC_QUPV3_I2C_S7_CLK_SRC                               87
+#define GCC_QUPV3_I2C_S8_CLK                                   88
+#define GCC_QUPV3_I2C_S8_CLK_SRC                               89
+#define GCC_QUPV3_I2C_S9_CLK                                   90
+#define GCC_QUPV3_I2C_S9_CLK_SRC                               91
+#define GCC_QUPV3_I2C_S_AHB_CLK                                        92
+#define GCC_QUPV3_WRAP1_CORE_2X_CLK                            93
+#define GCC_QUPV3_WRAP1_CORE_CLK                               94
+#define GCC_QUPV3_WRAP1_QSPI_REF_CLK                           95
+#define GCC_QUPV3_WRAP1_QSPI_REF_CLK_SRC                       96
+#define GCC_QUPV3_WRAP1_S0_CLK                                 97
+#define GCC_QUPV3_WRAP1_S0_CLK_SRC                             98
+#define GCC_QUPV3_WRAP1_S1_CLK                                 99
+#define GCC_QUPV3_WRAP1_S1_CLK_SRC                             100
+#define GCC_QUPV3_WRAP1_S2_CLK                                 101
+#define GCC_QUPV3_WRAP1_S2_CLK_SRC                             102
+#define GCC_QUPV3_WRAP1_S3_CLK                                 103
+#define GCC_QUPV3_WRAP1_S3_CLK_SRC                             104
+#define GCC_QUPV3_WRAP1_S4_CLK                                 105
+#define GCC_QUPV3_WRAP1_S4_CLK_SRC                             106
+#define GCC_QUPV3_WRAP1_S5_CLK                                 107
+#define GCC_QUPV3_WRAP1_S5_CLK_SRC                             108
+#define GCC_QUPV3_WRAP1_S6_CLK                                 109
+#define GCC_QUPV3_WRAP1_S6_CLK_SRC                             110
+#define GCC_QUPV3_WRAP1_S7_CLK                                 111
+#define GCC_QUPV3_WRAP1_S7_CLK_SRC                             112
+#define GCC_QUPV3_WRAP2_CORE_2X_CLK                            113
+#define GCC_QUPV3_WRAP2_CORE_CLK                               114
+#define GCC_QUPV3_WRAP2_IBI_CTRL_0_CLK_SRC                     115
+#define GCC_QUPV3_WRAP2_IBI_CTRL_2_CLK                         116
+#define GCC_QUPV3_WRAP2_IBI_CTRL_3_CLK                         117
+#define GCC_QUPV3_WRAP2_S0_CLK                                 118
+#define GCC_QUPV3_WRAP2_S0_CLK_SRC                             119
+#define GCC_QUPV3_WRAP2_S1_CLK                                 120
+#define GCC_QUPV3_WRAP2_S1_CLK_SRC                             121
+#define GCC_QUPV3_WRAP2_S2_CLK                                 122
+#define GCC_QUPV3_WRAP2_S2_CLK_SRC                             123
+#define GCC_QUPV3_WRAP2_S3_CLK                                 124
+#define GCC_QUPV3_WRAP2_S3_CLK_SRC                             125
+#define GCC_QUPV3_WRAP2_S4_CLK                                 126
+#define GCC_QUPV3_WRAP2_S4_CLK_SRC                             127
+#define GCC_QUPV3_WRAP2_S5_CLK                                 128
+#define GCC_QUPV3_WRAP2_S5_CLK_SRC                             129
+#define GCC_QUPV3_WRAP2_S6_CLK                                 130
+#define GCC_QUPV3_WRAP2_S6_CLK_SRC                             131
+#define GCC_QUPV3_WRAP2_S7_CLK                                 132
+#define GCC_QUPV3_WRAP2_S7_CLK_SRC                             133
+#define GCC_QUPV3_WRAP3_CORE_2X_CLK                            134
+#define GCC_QUPV3_WRAP3_CORE_CLK                               135
+#define GCC_QUPV3_WRAP3_QSPI_REF_CLK                           136
+#define GCC_QUPV3_WRAP3_QSPI_REF_CLK_SRC                       137
+#define GCC_QUPV3_WRAP3_S0_CLK                                 138
+#define GCC_QUPV3_WRAP3_S0_CLK_SRC                             139
+#define GCC_QUPV3_WRAP_1_M_AHB_CLK                             140
+#define GCC_QUPV3_WRAP_1_S_AHB_CLK                             141
+#define GCC_QUPV3_WRAP_2_IBI_2_AHB_CLK                         142
+#define GCC_QUPV3_WRAP_2_IBI_3_AHB_CLK                         143
+#define GCC_QUPV3_WRAP_2_M_AHB_CLK                             144
+#define GCC_QUPV3_WRAP_2_S_AHB_CLK                             145
+#define GCC_QUPV3_WRAP_3_M_AHB_CLK                             146
+#define GCC_QUPV3_WRAP_3_S_AHB_CLK                             147
+#define GCC_SDCC2_AHB_CLK                                      148
+#define GCC_SDCC2_APPS_CLK                                     149
+#define GCC_SDCC2_APPS_CLK_SRC                                 150
+#define GCC_SDCC4_AHB_CLK                                      151
+#define GCC_SDCC4_APPS_CLK                                     152
+#define GCC_SDCC4_APPS_CLK_SRC                                 153
+#define GCC_UFS_PHY_AHB_CLK                                    154
+#define GCC_UFS_PHY_AXI_CLK                                    155
+#define GCC_UFS_PHY_AXI_CLK_SRC                                        156
+#define GCC_UFS_PHY_AXI_HW_CTL_CLK                             157
+#define GCC_UFS_PHY_ICE_CORE_CLK                               158
+#define GCC_UFS_PHY_ICE_CORE_CLK_SRC                           159
+#define GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK                                160
+#define GCC_UFS_PHY_PHY_AUX_CLK                                        161
+#define GCC_UFS_PHY_PHY_AUX_CLK_SRC                            162
+#define GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK                         163
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK                            164
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC                                165
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK                            166
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC                                167
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK                            168
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC                                169
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK                            170
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC                                171
+#define GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK                     172
+#define GCC_USB30_PRIM_MASTER_CLK                              173
+#define GCC_USB30_PRIM_MASTER_CLK_SRC                          174
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK                           175
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC                       176
+#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC               177
+#define GCC_USB30_PRIM_SLEEP_CLK                               178
+#define GCC_USB3_PRIM_PHY_AUX_CLK                              179
+#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC                          180
+#define GCC_USB3_PRIM_PHY_COM_AUX_CLK                          181
+#define GCC_USB3_PRIM_PHY_PIPE_CLK                             182
+#define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC                         183
+#define GCC_VIDEO_AHB_CLK                                      184
+#define GCC_VIDEO_AXI0_CLK                                     185
+#define GCC_VIDEO_AXI1_CLK                                     186
+#define GCC_VIDEO_XO_CLK                                       187
+#define GCC_GPLL0_AO                                           188
+#define GCC_GPLL0_OUT_EVEN_AO                                  189
+#define GCC_GPLL1_AO                                           190
+#define GCC_GPLL3_AO                                           191
+#define GCC_GPLL4_AO                                           192
+#define GCC_GPLL6_AO                                           193
+
+/* GCC resets */
+#define GCC_CAMERA_BCR                                         0
+#define GCC_DISPLAY_BCR                                                1
+#define GCC_GPU_BCR                                            2
+#define GCC_PCIE_0_BCR                                         3
+#define GCC_PCIE_0_LINK_DOWN_BCR                               4
+#define GCC_PCIE_0_NOCSR_COM_PHY_BCR                           5
+#define GCC_PCIE_0_PHY_BCR                                     6
+#define GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR                       7
+#define GCC_PCIE_1_BCR                                         8
+#define GCC_PCIE_1_LINK_DOWN_BCR                               9
+#define GCC_PCIE_1_NOCSR_COM_PHY_BCR                           10
+#define GCC_PCIE_1_PHY_BCR                                     11
+#define GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR                       12
+#define GCC_PCIE_PHY_BCR                                       13
+#define GCC_PCIE_PHY_CFG_AHB_BCR                               14
+#define GCC_PCIE_PHY_COM_BCR                                   15
+#define GCC_PDM_BCR                                            16
+#define GCC_QUPV3_WRAPPER_1_BCR                                        17
+#define GCC_QUPV3_WRAPPER_2_BCR                                        18
+#define GCC_QUPV3_WRAPPER_3_BCR                                        19
+#define GCC_QUPV3_WRAPPER_I2C_BCR                              20
+#define GCC_QUSB2PHY_PRIM_BCR                                  21
+#define GCC_QUSB2PHY_SEC_BCR                                   22
+#define GCC_SDCC2_BCR                                          23
+#define GCC_SDCC4_BCR                                          24
+#define GCC_UFS_PHY_BCR                                                25
+#define GCC_USB30_PRIM_BCR                                     26
+#define GCC_USB3_DP_PHY_PRIM_BCR                               27
+#define GCC_USB3_DP_PHY_SEC_BCR                                        28
+#define GCC_USB3_PHY_PRIM_BCR                                  29
+#define GCC_USB3_PHY_SEC_BCR                                   30
+#define GCC_USB3PHY_PHY_PRIM_BCR                               31
+#define GCC_USB3PHY_PHY_SEC_BCR                                        32
+#define GCC_VIDEO_AXI0_CLK_ARES                                        33
+#define GCC_VIDEO_AXI1_CLK_ARES                                        34
+#define GCC_VIDEO_BCR                                          35
+
+/* GCC power domains */
+#define PCIE_0_GDSC                                            0
+#define PCIE_0_PHY_GDSC                                                1
+#define PCIE_1_GDSC                                            2
+#define PCIE_1_PHY_GDSC                                                3
+#define UFS_PHY_GDSC                                           4
+#define UFS_MEM_PHY_GDSC                                       5
+#define USB30_PRIM_GDSC                                                6
+#define USB3_PHY_GDSC                                          7
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8650-gpucc.h b/include/dt-bindings/clock/qcom,sm8650-gpucc.h
new file mode 100644 (file)
index 0000000..d0dc457
--- /dev/null
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8650_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8650_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                         0
+#define GPU_CC_CRC_AHB_CLK                     1
+#define GPU_CC_CX_ACCU_SHIFT_CLK               2
+#define GPU_CC_CX_FF_CLK                       3
+#define GPU_CC_CX_GMU_CLK                      4
+#define GPU_CC_CXO_AON_CLK                     5
+#define GPU_CC_CXO_CLK                         6
+#define GPU_CC_DEMET_CLK                       7
+#define GPU_CC_DPM_CLK                         8
+#define GPU_CC_FF_CLK_SRC                      9
+#define GPU_CC_FREQ_MEASURE_CLK                        10
+#define GPU_CC_GMU_CLK_SRC                     11
+#define GPU_CC_GX_ACCU_SHIFT_CLK               12
+#define GPU_CC_GX_FF_CLK                       13
+#define GPU_CC_GX_GFX3D_CLK                    14
+#define GPU_CC_GX_GFX3D_RDVM_CLK               15
+#define GPU_CC_GX_GMU_CLK                      16
+#define GPU_CC_GX_VSENSE_CLK                   17
+#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK         18
+#define GPU_CC_HUB_AON_CLK                     19
+#define GPU_CC_HUB_CLK_SRC                     20
+#define GPU_CC_HUB_CX_INT_CLK                  21
+#define GPU_CC_HUB_DIV_CLK_SRC                 22
+#define GPU_CC_MEMNOC_GFX_CLK                  23
+#define GPU_CC_PLL0                            24
+#define GPU_CC_PLL1                            25
+#define GPU_CC_SLEEP_CLK                       26
+
+/* GDSCs */
+#define GPU_GX_GDSC                            0
+#define GPU_CX_GDSC                            1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8650-tcsr.h b/include/dt-bindings/clock/qcom,sm8650-tcsr.h
new file mode 100644 (file)
index 0000000..b2c72d4
--- /dev/null
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_TCSR_CC_SM8650_H
+#define _DT_BINDINGS_CLK_QCOM_TCSR_CC_SM8650_H
+
+/* TCSR CC clocks */
+#define TCSR_PCIE_0_CLKREF_EN                                  0
+#define TCSR_PCIE_1_CLKREF_EN                                  1
+#define TCSR_UFS_CLKREF_EN                                     2
+#define TCSR_UFS_PAD_CLKREF_EN                                 3
+#define TCSR_USB2_CLKREF_EN                                    4
+#define TCSR_USB3_CLKREF_EN                                    5
+
+#endif
index e24ee840cfdb800f6289dc2236e24a62c65e640b..c557b78dc572f57fa0fad364484d25a355123886 100644 (file)
 
 /* VIDEO_CC Resets */
 #define VIDEO_CC_MVSC_CORE_CLK_BCR     0
+#define VIDEO_CC_INTERFACE_BCR         1
+#define VIDEO_CC_MVS0_BCR              2
+#define VIDEO_CC_MVS1_BCR              3
+#define VIDEO_CC_MVSC_BCR              4
 
 /* VIDEO_CC GDSCRs */
 #define VENUS_GDSC                     0
diff --git a/include/dt-bindings/clock/qcom,x1e80100-gcc.h b/include/dt-bindings/clock/qcom,x1e80100-gcc.h
new file mode 100644 (file)
index 0000000..24ba9e2
--- /dev/null
@@ -0,0 +1,485 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GCC_X1E80100_H
+#define _DT_BINDINGS_CLK_QCOM_GCC_X1E80100_H
+
+/* GCC clocks */
+#define GCC_AGGRE_NOC_USB_NORTH_AXI_CLK                                0
+#define GCC_AGGRE_NOC_USB_SOUTH_AXI_CLK                                1
+#define GCC_AGGRE_UFS_PHY_AXI_CLK                              2
+#define GCC_AGGRE_USB2_PRIM_AXI_CLK                            3
+#define GCC_AGGRE_USB3_MP_AXI_CLK                              4
+#define GCC_AGGRE_USB3_PRIM_AXI_CLK                            5
+#define GCC_AGGRE_USB3_SEC_AXI_CLK                             6
+#define GCC_AGGRE_USB3_TERT_AXI_CLK                            7
+#define GCC_AGGRE_USB4_0_AXI_CLK                               8
+#define GCC_AGGRE_USB4_1_AXI_CLK                               9
+#define GCC_AGGRE_USB4_2_AXI_CLK                               10
+#define GCC_AGGRE_USB_NOC_AXI_CLK                              11
+#define GCC_AV1E_AHB_CLK                                       12
+#define GCC_AV1E_AXI_CLK                                       13
+#define GCC_AV1E_XO_CLK                                                14
+#define GCC_BOOT_ROM_AHB_CLK                                   15
+#define GCC_CAMERA_AHB_CLK                                     16
+#define GCC_CAMERA_HF_AXI_CLK                                  17
+#define GCC_CAMERA_SF_AXI_CLK                                  18
+#define GCC_CAMERA_XO_CLK                                      19
+#define GCC_CFG_NOC_PCIE_ANOC_AHB_CLK                          20
+#define GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK                    21
+#define GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK                    22
+#define GCC_CFG_NOC_USB2_PRIM_AXI_CLK                          23
+#define GCC_CFG_NOC_USB3_MP_AXI_CLK                            24
+#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK                          25
+#define GCC_CFG_NOC_USB3_SEC_AXI_CLK                           26
+#define GCC_CFG_NOC_USB3_TERT_AXI_CLK                          27
+#define GCC_CFG_NOC_USB_ANOC_AHB_CLK                           28
+#define GCC_CFG_NOC_USB_ANOC_NORTH_AHB_CLK                     29
+#define GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK                     30
+#define GCC_CNOC_PCIE1_TUNNEL_CLK                              31
+#define GCC_CNOC_PCIE2_TUNNEL_CLK                              32
+#define GCC_CNOC_PCIE_NORTH_SF_AXI_CLK                         33
+#define GCC_CNOC_PCIE_SOUTH_SF_AXI_CLK                         34
+#define GCC_CNOC_PCIE_TUNNEL_CLK                               35
+#define GCC_DDRSS_GPU_AXI_CLK                                  36
+#define GCC_DISP_AHB_CLK                                       37
+#define GCC_DISP_HF_AXI_CLK                                    38
+#define GCC_DISP_XO_CLK                                                39
+#define GCC_GP1_CLK                                            40
+#define GCC_GP1_CLK_SRC                                                41
+#define GCC_GP2_CLK                                            42
+#define GCC_GP2_CLK_SRC                                                43
+#define GCC_GP3_CLK                                            44
+#define GCC_GP3_CLK_SRC                                                45
+#define GCC_GPLL0                                              46
+#define GCC_GPLL0_OUT_EVEN                                     47
+#define GCC_GPLL4                                              48
+#define GCC_GPLL7                                              49
+#define GCC_GPLL8                                              50
+#define GCC_GPLL9                                              51
+#define GCC_GPU_CFG_AHB_CLK                                    52
+#define GCC_GPU_GPLL0_CPH_CLK_SRC                              53
+#define GCC_GPU_GPLL0_DIV_CPH_CLK_SRC                          54
+#define GCC_GPU_MEMNOC_GFX_CLK                                 55
+#define GCC_GPU_SNOC_DVM_GFX_CLK                               56
+#define GCC_PCIE0_PHY_RCHNG_CLK                                        57
+#define GCC_PCIE1_PHY_RCHNG_CLK                                        58
+#define GCC_PCIE2_PHY_RCHNG_CLK                                        59
+#define GCC_PCIE_0_AUX_CLK                                     60
+#define GCC_PCIE_0_AUX_CLK_SRC                                 61
+#define GCC_PCIE_0_CFG_AHB_CLK                                 62
+#define GCC_PCIE_0_MSTR_AXI_CLK                                        63
+#define GCC_PCIE_0_PHY_RCHNG_CLK_SRC                           64
+#define GCC_PCIE_0_PIPE_CLK                                    65
+#define GCC_PCIE_0_SLV_AXI_CLK                                 66
+#define GCC_PCIE_0_SLV_Q2A_AXI_CLK                             67
+#define GCC_PCIE_1_AUX_CLK                                     68
+#define GCC_PCIE_1_AUX_CLK_SRC                                 69
+#define GCC_PCIE_1_CFG_AHB_CLK                                 70
+#define GCC_PCIE_1_MSTR_AXI_CLK                                        71
+#define GCC_PCIE_1_PHY_RCHNG_CLK_SRC                           72
+#define GCC_PCIE_1_PIPE_CLK                                    73
+#define GCC_PCIE_1_SLV_AXI_CLK                                 74
+#define GCC_PCIE_1_SLV_Q2A_AXI_CLK                             75
+#define GCC_PCIE_2_AUX_CLK                                     76
+#define GCC_PCIE_2_AUX_CLK_SRC                                 77
+#define GCC_PCIE_2_CFG_AHB_CLK                                 78
+#define GCC_PCIE_2_MSTR_AXI_CLK                                        79
+#define GCC_PCIE_2_PHY_RCHNG_CLK_SRC                           80
+#define GCC_PCIE_2_PIPE_CLK                                    81
+#define GCC_PCIE_2_SLV_AXI_CLK                                 82
+#define GCC_PCIE_2_SLV_Q2A_AXI_CLK                             83
+#define GCC_PCIE_3_AUX_CLK                                     84
+#define GCC_PCIE_3_AUX_CLK_SRC                                 85
+#define GCC_PCIE_3_CFG_AHB_CLK                                 86
+#define GCC_PCIE_3_MSTR_AXI_CLK                                        87
+#define GCC_PCIE_3_PHY_AUX_CLK                                 88
+#define GCC_PCIE_3_PHY_RCHNG_CLK                               89
+#define GCC_PCIE_3_PHY_RCHNG_CLK_SRC                           90
+#define GCC_PCIE_3_PIPE_CLK                                    91
+#define GCC_PCIE_3_PIPE_DIV_CLK_SRC                            92
+#define GCC_PCIE_3_PIPEDIV2_CLK                                        93
+#define GCC_PCIE_3_SLV_AXI_CLK                                 94
+#define GCC_PCIE_3_SLV_Q2A_AXI_CLK                             95
+#define GCC_PCIE_4_AUX_CLK                                     96
+#define GCC_PCIE_4_AUX_CLK_SRC                                 97
+#define GCC_PCIE_4_CFG_AHB_CLK                                 98
+#define GCC_PCIE_4_MSTR_AXI_CLK                                        99
+#define GCC_PCIE_4_PHY_RCHNG_CLK                               100
+#define GCC_PCIE_4_PHY_RCHNG_CLK_SRC                           101
+#define GCC_PCIE_4_PIPE_CLK                                    102
+#define GCC_PCIE_4_PIPE_DIV_CLK_SRC                            103
+#define GCC_PCIE_4_PIPEDIV2_CLK                                        104
+#define GCC_PCIE_4_SLV_AXI_CLK                                 105
+#define GCC_PCIE_4_SLV_Q2A_AXI_CLK                             106
+#define GCC_PCIE_5_AUX_CLK                                     107
+#define GCC_PCIE_5_AUX_CLK_SRC                                 108
+#define GCC_PCIE_5_CFG_AHB_CLK                                 109
+#define GCC_PCIE_5_MSTR_AXI_CLK                                        110
+#define GCC_PCIE_5_PHY_RCHNG_CLK                               111
+#define GCC_PCIE_5_PHY_RCHNG_CLK_SRC                           112
+#define GCC_PCIE_5_PIPE_CLK                                    113
+#define GCC_PCIE_5_PIPE_DIV_CLK_SRC                            114
+#define GCC_PCIE_5_PIPEDIV2_CLK                                        115
+#define GCC_PCIE_5_SLV_AXI_CLK                                 116
+#define GCC_PCIE_5_SLV_Q2A_AXI_CLK                             117
+#define GCC_PCIE_6A_AUX_CLK                                    118
+#define GCC_PCIE_6A_AUX_CLK_SRC                                        119
+#define GCC_PCIE_6A_CFG_AHB_CLK                                        120
+#define GCC_PCIE_6A_MSTR_AXI_CLK                               121
+#define GCC_PCIE_6A_PHY_AUX_CLK                                        122
+#define GCC_PCIE_6A_PHY_RCHNG_CLK                              123
+#define GCC_PCIE_6A_PHY_RCHNG_CLK_SRC                          124
+#define GCC_PCIE_6A_PIPE_CLK                                   125
+#define GCC_PCIE_6A_PIPE_DIV_CLK_SRC                           126
+#define GCC_PCIE_6A_PIPEDIV2_CLK                               127
+#define GCC_PCIE_6A_SLV_AXI_CLK                                        128
+#define GCC_PCIE_6A_SLV_Q2A_AXI_CLK                            129
+#define GCC_PCIE_6B_AUX_CLK                                    130
+#define GCC_PCIE_6B_AUX_CLK_SRC                                        131
+#define GCC_PCIE_6B_CFG_AHB_CLK                                        132
+#define GCC_PCIE_6B_MSTR_AXI_CLK                               133
+#define GCC_PCIE_6B_PHY_AUX_CLK                                        134
+#define GCC_PCIE_6B_PHY_RCHNG_CLK                              135
+#define GCC_PCIE_6B_PHY_RCHNG_CLK_SRC                          136
+#define GCC_PCIE_6B_PIPE_CLK                                   137
+#define GCC_PCIE_6B_PIPE_DIV_CLK_SRC                           138
+#define GCC_PCIE_6B_PIPEDIV2_CLK                               139
+#define GCC_PCIE_6B_SLV_AXI_CLK                                        140
+#define GCC_PCIE_6B_SLV_Q2A_AXI_CLK                            141
+#define GCC_PCIE_RSCC_AHB_CLK                                  142
+#define GCC_PCIE_RSCC_XO_CLK                                   143
+#define GCC_PCIE_RSCC_XO_CLK_SRC                               144
+#define GCC_PDM2_CLK                                           145
+#define GCC_PDM2_CLK_SRC                                       146
+#define GCC_PDM_AHB_CLK                                                147
+#define GCC_PDM_XO4_CLK                                                148
+#define GCC_QMIP_AV1E_AHB_CLK                                  149
+#define GCC_QMIP_CAMERA_NRT_AHB_CLK                            150
+#define GCC_QMIP_CAMERA_RT_AHB_CLK                             151
+#define GCC_QMIP_DISP_AHB_CLK                                  152
+#define GCC_QMIP_GPU_AHB_CLK                                   153
+#define GCC_QMIP_VIDEO_CV_CPU_AHB_CLK                          154
+#define GCC_QMIP_VIDEO_CVP_AHB_CLK                             155
+#define GCC_QMIP_VIDEO_V_CPU_AHB_CLK                           156
+#define GCC_QMIP_VIDEO_VCODEC_AHB_CLK                          157
+#define GCC_QUPV3_WRAP0_CORE_2X_CLK                            158
+#define GCC_QUPV3_WRAP0_CORE_CLK                               159
+#define GCC_QUPV3_WRAP0_QSPI_S2_CLK                            160
+#define GCC_QUPV3_WRAP0_QSPI_S3_CLK                            161
+#define GCC_QUPV3_WRAP0_S0_CLK                                 162
+#define GCC_QUPV3_WRAP0_S0_CLK_SRC                             163
+#define GCC_QUPV3_WRAP0_S1_CLK                                 164
+#define GCC_QUPV3_WRAP0_S1_CLK_SRC                             165
+#define GCC_QUPV3_WRAP0_S2_CLK                                 166
+#define GCC_QUPV3_WRAP0_S2_CLK_SRC                             167
+#define GCC_QUPV3_WRAP0_S2_DIV_CLK_SRC                         168
+#define GCC_QUPV3_WRAP0_S3_CLK                                 169
+#define GCC_QUPV3_WRAP0_S3_CLK_SRC                             170
+#define GCC_QUPV3_WRAP0_S3_DIV_CLK_SRC                         171
+#define GCC_QUPV3_WRAP0_S4_CLK                                 172
+#define GCC_QUPV3_WRAP0_S4_CLK_SRC                             173
+#define GCC_QUPV3_WRAP0_S5_CLK                                 174
+#define GCC_QUPV3_WRAP0_S5_CLK_SRC                             175
+#define GCC_QUPV3_WRAP0_S6_CLK                                 176
+#define GCC_QUPV3_WRAP0_S6_CLK_SRC                             177
+#define GCC_QUPV3_WRAP0_S7_CLK                                 178
+#define GCC_QUPV3_WRAP0_S7_CLK_SRC                             179
+#define GCC_QUPV3_WRAP1_CORE_2X_CLK                            180
+#define GCC_QUPV3_WRAP1_CORE_CLK                               181
+#define GCC_QUPV3_WRAP1_QSPI_S2_CLK                            182
+#define GCC_QUPV3_WRAP1_QSPI_S3_CLK                            183
+#define GCC_QUPV3_WRAP1_S0_CLK                                 184
+#define GCC_QUPV3_WRAP1_S0_CLK_SRC                             185
+#define GCC_QUPV3_WRAP1_S1_CLK                                 186
+#define GCC_QUPV3_WRAP1_S1_CLK_SRC                             187
+#define GCC_QUPV3_WRAP1_S2_CLK                                 188
+#define GCC_QUPV3_WRAP1_S2_CLK_SRC                             189
+#define GCC_QUPV3_WRAP1_S2_DIV_CLK_SRC                         190
+#define GCC_QUPV3_WRAP1_S3_CLK                                 191
+#define GCC_QUPV3_WRAP1_S3_CLK_SRC                             192
+#define GCC_QUPV3_WRAP1_S3_DIV_CLK_SRC                         193
+#define GCC_QUPV3_WRAP1_S4_CLK                                 194
+#define GCC_QUPV3_WRAP1_S4_CLK_SRC                             195
+#define GCC_QUPV3_WRAP1_S5_CLK                                 196
+#define GCC_QUPV3_WRAP1_S5_CLK_SRC                             197
+#define GCC_QUPV3_WRAP1_S6_CLK                                 198
+#define GCC_QUPV3_WRAP1_S6_CLK_SRC                             199
+#define GCC_QUPV3_WRAP1_S7_CLK                                 200
+#define GCC_QUPV3_WRAP1_S7_CLK_SRC                             201
+#define GCC_QUPV3_WRAP2_CORE_2X_CLK                            202
+#define GCC_QUPV3_WRAP2_CORE_CLK                               203
+#define GCC_QUPV3_WRAP2_QSPI_S2_CLK                            204
+#define GCC_QUPV3_WRAP2_QSPI_S3_CLK                            205
+#define GCC_QUPV3_WRAP2_S0_CLK                                 206
+#define GCC_QUPV3_WRAP2_S0_CLK_SRC                             207
+#define GCC_QUPV3_WRAP2_S1_CLK                                 208
+#define GCC_QUPV3_WRAP2_S1_CLK_SRC                             209
+#define GCC_QUPV3_WRAP2_S2_CLK                                 210
+#define GCC_QUPV3_WRAP2_S2_CLK_SRC                             211
+#define GCC_QUPV3_WRAP2_S2_DIV_CLK_SRC                         212
+#define GCC_QUPV3_WRAP2_S3_CLK                                 213
+#define GCC_QUPV3_WRAP2_S3_CLK_SRC                             214
+#define GCC_QUPV3_WRAP2_S3_DIV_CLK_SRC                         215
+#define GCC_QUPV3_WRAP2_S4_CLK                                 216
+#define GCC_QUPV3_WRAP2_S4_CLK_SRC                             217
+#define GCC_QUPV3_WRAP2_S5_CLK                                 218
+#define GCC_QUPV3_WRAP2_S5_CLK_SRC                             219
+#define GCC_QUPV3_WRAP2_S6_CLK                                 220
+#define GCC_QUPV3_WRAP2_S6_CLK_SRC                             221
+#define GCC_QUPV3_WRAP2_S7_CLK                                 222
+#define GCC_QUPV3_WRAP2_S7_CLK_SRC                             223
+#define GCC_QUPV3_WRAP_0_M_AHB_CLK                             224
+#define GCC_QUPV3_WRAP_0_S_AHB_CLK                             225
+#define GCC_QUPV3_WRAP_1_M_AHB_CLK                             226
+#define GCC_QUPV3_WRAP_1_S_AHB_CLK                             227
+#define GCC_QUPV3_WRAP_2_M_AHB_CLK                             228
+#define GCC_QUPV3_WRAP_2_S_AHB_CLK                             229
+#define GCC_SDCC2_AHB_CLK                                      230
+#define GCC_SDCC2_APPS_CLK                                     231
+#define GCC_SDCC2_APPS_CLK_SRC                                 232
+#define GCC_SDCC4_AHB_CLK                                      233
+#define GCC_SDCC4_APPS_CLK                                     234
+#define GCC_SDCC4_APPS_CLK_SRC                                 235
+#define GCC_SYS_NOC_USB_AXI_CLK                                        236
+#define GCC_UFS_PHY_AHB_CLK                                    237
+#define GCC_UFS_PHY_AXI_CLK                                    238
+#define GCC_UFS_PHY_AXI_CLK_SRC                                        239
+#define GCC_UFS_PHY_ICE_CORE_CLK                               240
+#define GCC_UFS_PHY_ICE_CORE_CLK_SRC                           241
+#define GCC_UFS_PHY_PHY_AUX_CLK                                        242
+#define GCC_UFS_PHY_PHY_AUX_CLK_SRC                            243
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK                            244
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK                            245
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK                            246
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK                            247
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC                                248
+#define GCC_USB20_MASTER_CLK                                   249
+#define GCC_USB20_MASTER_CLK_SRC                               250
+#define GCC_USB20_MOCK_UTMI_CLK                                        251
+#define GCC_USB20_MOCK_UTMI_CLK_SRC                            252
+#define GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC                    253
+#define GCC_USB20_SLEEP_CLK                                    254
+#define GCC_USB30_MP_MASTER_CLK                                        255
+#define GCC_USB30_MP_MASTER_CLK_SRC                            256
+#define GCC_USB30_MP_MOCK_UTMI_CLK                             257
+#define GCC_USB30_MP_MOCK_UTMI_CLK_SRC                         258
+#define GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC                 259
+#define GCC_USB30_MP_SLEEP_CLK                                 260
+#define GCC_USB30_PRIM_MASTER_CLK                              261
+#define GCC_USB30_PRIM_MASTER_CLK_SRC                          262
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK                           263
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC                       264
+#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC               265
+#define GCC_USB30_PRIM_SLEEP_CLK                               266
+#define GCC_USB30_SEC_MASTER_CLK                               267
+#define GCC_USB30_SEC_MASTER_CLK_SRC                           268
+#define GCC_USB30_SEC_MOCK_UTMI_CLK                            269
+#define GCC_USB30_SEC_MOCK_UTMI_CLK_SRC                                270
+#define GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC                        271
+#define GCC_USB30_SEC_SLEEP_CLK                                        272
+#define GCC_USB30_TERT_MASTER_CLK                              273
+#define GCC_USB30_TERT_MASTER_CLK_SRC                          274
+#define GCC_USB30_TERT_MOCK_UTMI_CLK                           275
+#define GCC_USB30_TERT_MOCK_UTMI_CLK_SRC                       276
+#define GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC               277
+#define GCC_USB30_TERT_SLEEP_CLK                               278
+#define GCC_USB3_MP_PHY_AUX_CLK                                        279
+#define GCC_USB3_MP_PHY_AUX_CLK_SRC                            280
+#define GCC_USB3_MP_PHY_COM_AUX_CLK                            281
+#define GCC_USB3_MP_PHY_PIPE_0_CLK                             282
+#define GCC_USB3_MP_PHY_PIPE_1_CLK                             283
+#define GCC_USB3_PRIM_PHY_AUX_CLK                              284
+#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC                          285
+#define GCC_USB3_PRIM_PHY_COM_AUX_CLK                          286
+#define GCC_USB3_PRIM_PHY_PIPE_CLK                             287
+#define GCC_USB3_SEC_PHY_AUX_CLK                               288
+#define GCC_USB3_SEC_PHY_AUX_CLK_SRC                           289
+#define GCC_USB3_SEC_PHY_COM_AUX_CLK                           290
+#define GCC_USB3_SEC_PHY_PIPE_CLK                              291
+#define GCC_USB3_TERT_PHY_AUX_CLK                              292
+#define GCC_USB3_TERT_PHY_AUX_CLK_SRC                          293
+#define GCC_USB3_TERT_PHY_COM_AUX_CLK                          294
+#define GCC_USB3_TERT_PHY_PIPE_CLK                             295
+#define GCC_USB4_0_CFG_AHB_CLK                                 296
+#define GCC_USB4_0_DP0_CLK                                     297
+#define GCC_USB4_0_DP1_CLK                                     298
+#define GCC_USB4_0_MASTER_CLK                                  299
+#define GCC_USB4_0_MASTER_CLK_SRC                              300
+#define GCC_USB4_0_PHY_P2RR2P_PIPE_CLK                         301
+#define GCC_USB4_0_PHY_PCIE_PIPE_CLK                           302
+#define GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC                       303
+#define GCC_USB4_0_PHY_RX0_CLK                                 304
+#define GCC_USB4_0_PHY_RX1_CLK                                 305
+#define GCC_USB4_0_PHY_USB_PIPE_CLK                            306
+#define GCC_USB4_0_SB_IF_CLK                                   307
+#define GCC_USB4_0_SB_IF_CLK_SRC                               308
+#define GCC_USB4_0_SYS_CLK                                     309
+#define GCC_USB4_0_TMU_CLK                                     310
+#define GCC_USB4_0_TMU_CLK_SRC                                 311
+#define GCC_USB4_1_CFG_AHB_CLK                                 312
+#define GCC_USB4_1_DP0_CLK                                     313
+#define GCC_USB4_1_DP1_CLK                                     314
+#define GCC_USB4_1_MASTER_CLK                                  315
+#define GCC_USB4_1_MASTER_CLK_SRC                              316
+#define GCC_USB4_1_PHY_P2RR2P_PIPE_CLK                         317
+#define GCC_USB4_1_PHY_PCIE_PIPE_CLK                           318
+#define GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC                       319
+#define GCC_USB4_1_PHY_RX0_CLK                                 320
+#define GCC_USB4_1_PHY_RX1_CLK                                 321
+#define GCC_USB4_1_PHY_USB_PIPE_CLK                            322
+#define GCC_USB4_1_SB_IF_CLK                                   323
+#define GCC_USB4_1_SB_IF_CLK_SRC                               324
+#define GCC_USB4_1_SYS_CLK                                     325
+#define GCC_USB4_1_TMU_CLK                                     326
+#define GCC_USB4_1_TMU_CLK_SRC                                 327
+#define GCC_USB4_2_CFG_AHB_CLK                                 328
+#define GCC_USB4_2_DP0_CLK                                     329
+#define GCC_USB4_2_DP1_CLK                                     330
+#define GCC_USB4_2_MASTER_CLK                                  331
+#define GCC_USB4_2_MASTER_CLK_SRC                              332
+#define GCC_USB4_2_PHY_P2RR2P_PIPE_CLK                         333
+#define GCC_USB4_2_PHY_PCIE_PIPE_CLK                           334
+#define GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC                       335
+#define GCC_USB4_2_PHY_RX0_CLK                                 336
+#define GCC_USB4_2_PHY_RX1_CLK                                 337
+#define GCC_USB4_2_PHY_USB_PIPE_CLK                            338
+#define GCC_USB4_2_SB_IF_CLK                                   339
+#define GCC_USB4_2_SB_IF_CLK_SRC                               340
+#define GCC_USB4_2_SYS_CLK                                     341
+#define GCC_USB4_2_TMU_CLK                                     342
+#define GCC_USB4_2_TMU_CLK_SRC                                 343
+#define GCC_VIDEO_AHB_CLK                                      344
+#define GCC_VIDEO_AXI0_CLK                                     345
+#define GCC_VIDEO_AXI1_CLK                                     346
+#define GCC_VIDEO_XO_CLK                                       347
+#define GCC_PCIE_3_PIPE_CLK_SRC                                        348
+#define GCC_PCIE_4_PIPE_CLK_SRC                                        349
+#define GCC_PCIE_5_PIPE_CLK_SRC                                        350
+#define GCC_PCIE_6A_PIPE_CLK_SRC                               351
+#define GCC_PCIE_6B_PIPE_CLK_SRC                               352
+#define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC                         353
+#define GCC_USB3_SEC_PHY_PIPE_CLK_SRC                          354
+#define GCC_USB3_TERT_PHY_PIPE_CLK_SRC                         355
+
+/* GCC power domains */
+#define GCC_PCIE_0_TUNNEL_GDSC                                 0
+#define GCC_PCIE_1_TUNNEL_GDSC                                 1
+#define GCC_PCIE_2_TUNNEL_GDSC                                 2
+#define GCC_PCIE_3_GDSC                                                3
+#define GCC_PCIE_3_PHY_GDSC                                    4
+#define GCC_PCIE_4_GDSC                                                5
+#define GCC_PCIE_4_PHY_GDSC                                    6
+#define GCC_PCIE_5_GDSC                                                7
+#define GCC_PCIE_5_PHY_GDSC                                    8
+#define GCC_PCIE_6_PHY_GDSC                                    9
+#define GCC_PCIE_6A_GDSC                                       10
+#define GCC_PCIE_6B_GDSC                                       11
+#define GCC_UFS_MEM_PHY_GDSC                                   12
+#define GCC_UFS_PHY_GDSC                                       13
+#define GCC_USB20_PRIM_GDSC                                    14
+#define GCC_USB30_MP_GDSC                                      15
+#define GCC_USB30_PRIM_GDSC                                    16
+#define GCC_USB30_SEC_GDSC                                     17
+#define GCC_USB30_TERT_GDSC                                    18
+#define GCC_USB3_MP_SS0_PHY_GDSC                               19
+#define GCC_USB3_MP_SS1_PHY_GDSC                               20
+#define GCC_USB4_0_GDSC                                                21
+#define GCC_USB4_1_GDSC                                                22
+#define GCC_USB4_2_GDSC                                                23
+#define GCC_USB_0_PHY_GDSC                                     24
+#define GCC_USB_1_PHY_GDSC                                     25
+#define GCC_USB_2_PHY_GDSC                                     26
+
+/* GCC resets */
+#define GCC_AV1E_BCR                                           0
+#define GCC_CAMERA_BCR                                         1
+#define GCC_DISPLAY_BCR                                                2
+#define GCC_GPU_BCR                                            3
+#define GCC_PCIE_0_LINK_DOWN_BCR                               4
+#define GCC_PCIE_0_NOCSR_COM_PHY_BCR                           5
+#define GCC_PCIE_0_PHY_BCR                                     6
+#define GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR                       7
+#define GCC_PCIE_0_TUNNEL_BCR                                  8
+#define GCC_PCIE_1_LINK_DOWN_BCR                               9
+#define GCC_PCIE_1_NOCSR_COM_PHY_BCR                           10
+#define GCC_PCIE_1_PHY_BCR                                     11
+#define GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR                       12
+#define GCC_PCIE_1_TUNNEL_BCR                                  13
+#define GCC_PCIE_2_LINK_DOWN_BCR                               14
+#define GCC_PCIE_2_NOCSR_COM_PHY_BCR                           15
+#define GCC_PCIE_2_PHY_BCR                                     16
+#define GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR                       17
+#define GCC_PCIE_2_TUNNEL_BCR                                  18
+#define GCC_PCIE_3_BCR                                         19
+#define GCC_PCIE_3_LINK_DOWN_BCR                               20
+#define GCC_PCIE_3_NOCSR_COM_PHY_BCR                           21
+#define GCC_PCIE_3_PHY_BCR                                     22
+#define GCC_PCIE_3_PHY_NOCSR_COM_PHY_BCR                       23
+#define GCC_PCIE_4_BCR                                         24
+#define GCC_PCIE_4_LINK_DOWN_BCR                               25
+#define GCC_PCIE_4_NOCSR_COM_PHY_BCR                           26
+#define GCC_PCIE_4_PHY_BCR                                     27
+#define GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR                       28
+#define GCC_PCIE_5_BCR                                         29
+#define GCC_PCIE_5_LINK_DOWN_BCR                               30
+#define GCC_PCIE_5_NOCSR_COM_PHY_BCR                           31
+#define GCC_PCIE_5_PHY_BCR                                     32
+#define GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR                       33
+#define GCC_PCIE_6A_BCR                                                34
+#define GCC_PCIE_6A_LINK_DOWN_BCR                              35
+#define GCC_PCIE_6A_NOCSR_COM_PHY_BCR                          36
+#define GCC_PCIE_6A_PHY_BCR                                    37
+#define GCC_PCIE_6A_PHY_NOCSR_COM_PHY_BCR                      38
+#define GCC_PCIE_6B_BCR                                                39
+#define GCC_PCIE_6B_LINK_DOWN_BCR                              40
+#define GCC_PCIE_6B_NOCSR_COM_PHY_BCR                          41
+#define GCC_PCIE_6B_PHY_BCR                                    42
+#define GCC_PCIE_6B_PHY_NOCSR_COM_PHY_BCR                      43
+#define GCC_PCIE_PHY_BCR                                       44
+#define GCC_PCIE_PHY_CFG_AHB_BCR                               45
+#define GCC_PCIE_PHY_COM_BCR                                   46
+#define GCC_PCIE_RSCC_BCR                                      47
+#define GCC_PDM_BCR                                            48
+#define GCC_QUPV3_WRAPPER_0_BCR                                        49
+#define GCC_QUPV3_WRAPPER_1_BCR                                        50
+#define GCC_QUPV3_WRAPPER_2_BCR                                        51
+#define GCC_QUSB2PHY_HS0_MP_BCR                                        52
+#define GCC_QUSB2PHY_HS1_MP_BCR                                        53
+#define GCC_QUSB2PHY_PRIM_BCR                                  54
+#define GCC_QUSB2PHY_SEC_BCR                                   55
+#define GCC_QUSB2PHY_TERT_BCR                                  56
+#define GCC_QUSB2PHY_USB20_HS_BCR                              57
+#define GCC_SDCC2_BCR                                          58
+#define GCC_SDCC4_BCR                                          59
+#define GCC_UFS_PHY_BCR                                                60
+#define GCC_USB20_PRIM_BCR                                     61
+#define GCC_USB30_MP_BCR                                       62
+#define GCC_USB30_PRIM_BCR                                     63
+#define GCC_USB30_SEC_BCR                                      64
+#define GCC_USB30_TERT_BCR                                     65
+#define GCC_USB3_MP_SS0_PHY_BCR                                        66
+#define GCC_USB3_MP_SS1_PHY_BCR                                        67
+#define GCC_USB3_PHY_PRIM_BCR                                  68
+#define GCC_USB3_PHY_SEC_BCR                                   69
+#define GCC_USB3_PHY_TERT_BCR                                  70
+#define GCC_USB3_UNIPHY_MP0_BCR                                        71
+#define GCC_USB3_UNIPHY_MP1_BCR                                        72
+#define GCC_USB3PHY_PHY_PRIM_BCR                               73
+#define GCC_USB3PHY_PHY_SEC_BCR                                        74
+#define GCC_USB3PHY_PHY_TERT_BCR                               75
+#define GCC_USB3UNIPHY_PHY_MP0_BCR                             76
+#define GCC_USB3UNIPHY_PHY_MP1_BCR                             77
+#define GCC_USB4_0_BCR                                         78
+#define GCC_USB4_0_DP0_PHY_PRIM_BCR                            79
+#define GCC_USB4_1_DP0_PHY_SEC_BCR                             80
+#define GCC_USB4_2_DP0_PHY_TERT_BCR                            81
+#define GCC_USB4_1_BCR                                         82
+#define GCC_USB4_2_BCR                                         83
+#define GCC_USB_0_PHY_BCR                                      84
+#define GCC_USB_1_PHY_BCR                                      85
+#define GCC_USB_2_PHY_BCR                                      86
+#define GCC_VIDEO_BCR                                          87
+#endif
diff --git a/include/dt-bindings/clock/sophgo,cv1800.h b/include/dt-bindings/clock/sophgo,cv1800.h
new file mode 100644 (file)
index 0000000..cfbeca2
--- /dev/null
@@ -0,0 +1,176 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2023 Sophgo Ltd.
+ */
+
+#ifndef __DT_BINDINGS_SOPHGO_CV1800_CLK_H__
+#define __DT_BINDINGS_SOPHGO_CV1800_CLK_H__
+
+#define CLK_MPLL                       0
+#define CLK_TPLL                       1
+#define CLK_FPLL                       2
+#define CLK_MIPIMPLL                   3
+#define CLK_A0PLL                      4
+#define CLK_DISPPLL                    5
+#define CLK_CAM0PLL                    6
+#define CLK_CAM1PLL                    7
+
+#define CLK_MIPIMPLL_D3                        8
+#define CLK_CAM0PLL_D2                 9
+#define CLK_CAM0PLL_D3                 10
+
+#define CLK_TPU                                11
+#define CLK_TPU_FAB                    12
+#define CLK_AHB_ROM                    13
+#define CLK_DDR_AXI_REG                        14
+#define CLK_RTC_25M                    15
+#define CLK_SRC_RTC_SYS_0              16
+#define CLK_TEMPSEN                    17
+#define CLK_SARADC                     18
+#define CLK_EFUSE                      19
+#define CLK_APB_EFUSE                  20
+#define CLK_DEBUG                      21
+#define CLK_AP_DEBUG                   22
+#define CLK_XTAL_MISC                  23
+#define CLK_AXI4_EMMC                  24
+#define CLK_EMMC                       25
+#define CLK_EMMC_100K                  26
+#define CLK_AXI4_SD0                   27
+#define CLK_SD0                                28
+#define CLK_SD0_100K                   29
+#define CLK_AXI4_SD1                   30
+#define CLK_SD1                                31
+#define CLK_SD1_100K                   32
+#define CLK_SPI_NAND                   33
+#define CLK_ETH0_500M                  34
+#define CLK_AXI4_ETH0                  35
+#define CLK_ETH1_500M                  36
+#define CLK_AXI4_ETH1                  37
+#define CLK_APB_GPIO                   38
+#define CLK_APB_GPIO_INTR              39
+#define CLK_GPIO_DB                    40
+#define CLK_AHB_SF                     41
+#define CLK_AHB_SF1                    42
+#define CLK_A24M                       43
+#define CLK_AUDSRC                     44
+#define CLK_APB_AUDSRC                 45
+#define CLK_SDMA_AXI                   46
+#define CLK_SDMA_AUD0                  47
+#define CLK_SDMA_AUD1                  48
+#define CLK_SDMA_AUD2                  49
+#define CLK_SDMA_AUD3                  50
+#define CLK_I2C                                51
+#define CLK_APB_I2C                    52
+#define CLK_APB_I2C0                   53
+#define CLK_APB_I2C1                   54
+#define CLK_APB_I2C2                   55
+#define CLK_APB_I2C3                   56
+#define CLK_APB_I2C4                   57
+#define CLK_APB_WDT                    58
+#define CLK_PWM_SRC                    59
+#define CLK_PWM                                60
+#define CLK_SPI                                61
+#define CLK_APB_SPI0                   62
+#define CLK_APB_SPI1                   63
+#define CLK_APB_SPI2                   64
+#define CLK_APB_SPI3                   65
+#define CLK_1M                         66
+#define CLK_CAM0_200                   67
+#define CLK_PM                         68
+#define CLK_TIMER0                     69
+#define CLK_TIMER1                     70
+#define CLK_TIMER2                     71
+#define CLK_TIMER3                     72
+#define CLK_TIMER4                     73
+#define CLK_TIMER5                     74
+#define CLK_TIMER6                     75
+#define CLK_TIMER7                     76
+#define CLK_UART0                      77
+#define CLK_APB_UART0                  78
+#define CLK_UART1                      79
+#define CLK_APB_UART1                  80
+#define CLK_UART2                      81
+#define CLK_APB_UART2                  82
+#define CLK_UART3                      83
+#define CLK_APB_UART3                  84
+#define CLK_UART4                      85
+#define CLK_APB_UART4                  86
+#define CLK_APB_I2S0                   87
+#define CLK_APB_I2S1                   88
+#define CLK_APB_I2S2                   89
+#define CLK_APB_I2S3                   90
+#define CLK_AXI4_USB                   91
+#define CLK_APB_USB                    92
+#define CLK_USB_125M                   93
+#define CLK_USB_33K                    94
+#define CLK_USB_12M                    95
+#define CLK_AXI4                       96
+#define CLK_AXI6                       97
+#define CLK_DSI_ESC                    98
+#define CLK_AXI_VIP                    99
+#define CLK_SRC_VIP_SYS_0              100
+#define CLK_SRC_VIP_SYS_1              101
+#define CLK_SRC_VIP_SYS_2              102
+#define CLK_SRC_VIP_SYS_3              103
+#define CLK_SRC_VIP_SYS_4              104
+#define CLK_CSI_BE_VIP                 105
+#define CLK_CSI_MAC0_VIP               106
+#define CLK_CSI_MAC1_VIP               107
+#define CLK_CSI_MAC2_VIP               108
+#define CLK_CSI0_RX_VIP                        109
+#define CLK_CSI1_RX_VIP                        110
+#define CLK_ISP_TOP_VIP                        111
+#define CLK_IMG_D_VIP                  112
+#define CLK_IMG_V_VIP                  113
+#define CLK_SC_TOP_VIP                 114
+#define CLK_SC_D_VIP                   115
+#define CLK_SC_V1_VIP                  116
+#define CLK_SC_V2_VIP                  117
+#define CLK_SC_V3_VIP                  118
+#define CLK_DWA_VIP                    119
+#define CLK_BT_VIP                     120
+#define CLK_DISP_VIP                   121
+#define CLK_DSI_MAC_VIP                        122
+#define CLK_LVDS0_VIP                  123
+#define CLK_LVDS1_VIP                  124
+#define CLK_PAD_VI_VIP                 125
+#define CLK_PAD_VI1_VIP                        126
+#define CLK_PAD_VI2_VIP                        127
+#define CLK_CFG_REG_VIP                        128
+#define CLK_VIP_IP0                    129
+#define CLK_VIP_IP1                    130
+#define CLK_VIP_IP2                    131
+#define CLK_VIP_IP3                    132
+#define CLK_IVE_VIP                    133
+#define CLK_RAW_VIP                    134
+#define CLK_OSDC_VIP                   135
+#define CLK_CAM0_VIP                   136
+#define CLK_AXI_VIDEO_CODEC            137
+#define CLK_VC_SRC0                    138
+#define CLK_VC_SRC1                    139
+#define CLK_VC_SRC2                    140
+#define CLK_H264C                      141
+#define CLK_APB_H264C                  142
+#define CLK_H265C                      143
+#define CLK_APB_H265C                  144
+#define CLK_JPEG                       145
+#define CLK_APB_JPEG                   146
+#define CLK_CAM0                       147
+#define CLK_CAM1                       148
+#define CLK_WGN                                149
+#define CLK_WGN0                       150
+#define CLK_WGN1                       151
+#define CLK_WGN2                       152
+#define CLK_KEYSCAN                    153
+#define CLK_CFG_REG_VC                 154
+#define CLK_C906_0                     155
+#define CLK_C906_1                     156
+#define CLK_A53                                157
+#define CLK_CPU_AXI0                   158
+#define CLK_CPU_GIC                    159
+#define CLK_XTAL_AP                    160
+
+// Only for CV181x
+#define CLK_DISP_SRC_VIP               161
+
+#endif /* __DT_BINDINGS_SOPHGO_CV1800_CLK_H__ */
diff --git a/include/dt-bindings/clock/st,stm32mp25-rcc.h b/include/dt-bindings/clock/st,stm32mp25-rcc.h
new file mode 100644 (file)
index 0000000..b6cf05a
--- /dev/null
@@ -0,0 +1,492 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
+ * Author: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
+ */
+
+#ifndef _DT_BINDINGS_STM32MP25_CLKS_H_
+#define _DT_BINDINGS_STM32MP25_CLKS_H_
+
+/* INTERNAL/EXTERNAL OSCILLATORS */
+#define HSI_CK                 0
+#define HSE_CK                 1
+#define MSI_CK                 2
+#define LSI_CK                 3
+#define LSE_CK                 4
+#define I2S_CK                 5
+#define RTC_CK                 6
+#define SPDIF_CK_SYMB          7
+
+/* PLL CLOCKS */
+#define PLL1_CK                        8
+#define PLL2_CK                        9
+#define PLL3_CK                        10
+#define PLL4_CK                        11
+#define PLL5_CK                        12
+#define PLL6_CK                        13
+#define PLL7_CK                        14
+#define PLL8_CK                        15
+
+#define CK_CPU1                        16
+
+/* APB DIV CLOCKS */
+#define CK_ICN_APB1            17
+#define CK_ICN_APB2            18
+#define CK_ICN_APB3            19
+#define CK_ICN_APB4            20
+#define CK_ICN_APBDBG          21
+
+/* GLOBAL TIMER */
+#define TIMG1_CK               22
+#define TIMG2_CK               23
+
+/* FLEXGEN CLOCKS */
+#define CK_ICN_HS_MCU          24
+#define CK_ICN_SDMMC           25
+#define CK_ICN_DDR             26
+#define CK_ICN_DISPLAY         27
+#define CK_ICN_HSL             28
+#define CK_ICN_NIC             29
+#define CK_ICN_VID             30
+#define CK_FLEXGEN_07          31
+#define CK_FLEXGEN_08          32
+#define CK_FLEXGEN_09          33
+#define CK_FLEXGEN_10          34
+#define CK_FLEXGEN_11          35
+#define CK_FLEXGEN_12          36
+#define CK_FLEXGEN_13          37
+#define CK_FLEXGEN_14          38
+#define CK_FLEXGEN_15          39
+#define CK_FLEXGEN_16          40
+#define CK_FLEXGEN_17          41
+#define CK_FLEXGEN_18          42
+#define CK_FLEXGEN_19          43
+#define CK_FLEXGEN_20          44
+#define CK_FLEXGEN_21          45
+#define CK_FLEXGEN_22          46
+#define CK_FLEXGEN_23          47
+#define CK_FLEXGEN_24          48
+#define CK_FLEXGEN_25          49
+#define CK_FLEXGEN_26          50
+#define CK_FLEXGEN_27          51
+#define CK_FLEXGEN_28          52
+#define CK_FLEXGEN_29          53
+#define CK_FLEXGEN_30          54
+#define CK_FLEXGEN_31          55
+#define CK_FLEXGEN_32          56
+#define CK_FLEXGEN_33          57
+#define CK_FLEXGEN_34          58
+#define CK_FLEXGEN_35          59
+#define CK_FLEXGEN_36          60
+#define CK_FLEXGEN_37          61
+#define CK_FLEXGEN_38          62
+#define CK_FLEXGEN_39          63
+#define CK_FLEXGEN_40          64
+#define CK_FLEXGEN_41          65
+#define CK_FLEXGEN_42          66
+#define CK_FLEXGEN_43          67
+#define CK_FLEXGEN_44          68
+#define CK_FLEXGEN_45          69
+#define CK_FLEXGEN_46          70
+#define CK_FLEXGEN_47          71
+#define CK_FLEXGEN_48          72
+#define CK_FLEXGEN_49          73
+#define CK_FLEXGEN_50          74
+#define CK_FLEXGEN_51          75
+#define CK_FLEXGEN_52          76
+#define CK_FLEXGEN_53          77
+#define CK_FLEXGEN_54          78
+#define CK_FLEXGEN_55          79
+#define CK_FLEXGEN_56          80
+#define CK_FLEXGEN_57          81
+#define CK_FLEXGEN_58          82
+#define CK_FLEXGEN_59          83
+#define CK_FLEXGEN_60          84
+#define CK_FLEXGEN_61          85
+#define CK_FLEXGEN_62          86
+#define CK_FLEXGEN_63          87
+
+/* LOW SPEED MCU CLOCK */
+#define CK_ICN_LS_MCU          88
+
+#define CK_BUS_STM500          89
+#define CK_BUS_FMC             90
+#define CK_BUS_GPU             91
+#define CK_BUS_ETH1            92
+#define CK_BUS_ETH2            93
+#define CK_BUS_PCIE            94
+#define CK_BUS_DDRPHYC         95
+#define CK_BUS_SYSCPU1         96
+#define CK_BUS_ETHSW           97
+#define CK_BUS_HPDMA1          98
+#define CK_BUS_HPDMA2          99
+#define CK_BUS_HPDMA3          100
+#define CK_BUS_ADC12           101
+#define CK_BUS_ADC3            102
+#define CK_BUS_IPCC1           103
+#define CK_BUS_CCI             104
+#define CK_BUS_CRC             105
+#define CK_BUS_MDF1            106
+#define CK_BUS_OSPIIOM         107
+#define CK_BUS_BKPSRAM         108
+#define CK_BUS_HASH            109
+#define CK_BUS_RNG             110
+#define CK_BUS_CRYP1           111
+#define CK_BUS_CRYP2           112
+#define CK_BUS_SAES            113
+#define CK_BUS_PKA             114
+#define CK_BUS_GPIOA           115
+#define CK_BUS_GPIOB           116
+#define CK_BUS_GPIOC           117
+#define CK_BUS_GPIOD           118
+#define CK_BUS_GPIOE           119
+#define CK_BUS_GPIOF           120
+#define CK_BUS_GPIOG           121
+#define CK_BUS_GPIOH           122
+#define CK_BUS_GPIOI           123
+#define CK_BUS_GPIOJ           124
+#define CK_BUS_GPIOK           125
+#define CK_BUS_LPSRAM1         126
+#define CK_BUS_LPSRAM2         127
+#define CK_BUS_LPSRAM3         128
+#define CK_BUS_GPIOZ           129
+#define CK_BUS_LPDMA           130
+#define CK_BUS_HSEM            131
+#define CK_BUS_IPCC2           132
+#define CK_BUS_RTC             133
+#define CK_BUS_SPI8            134
+#define CK_BUS_LPUART1         135
+#define CK_BUS_I2C8            136
+#define CK_BUS_LPTIM3          137
+#define CK_BUS_LPTIM4          138
+#define CK_BUS_LPTIM5          139
+#define CK_BUS_IWDG5           140
+#define CK_BUS_WWDG2           141
+#define CK_BUS_I3C4            142
+#define CK_BUS_TIM2            143
+#define CK_BUS_TIM3            144
+#define CK_BUS_TIM4            145
+#define CK_BUS_TIM5            146
+#define CK_BUS_TIM6            147
+#define CK_BUS_TIM7            148
+#define CK_BUS_TIM10           149
+#define CK_BUS_TIM11           150
+#define CK_BUS_TIM12           151
+#define CK_BUS_TIM13           152
+#define CK_BUS_TIM14           153
+#define CK_BUS_LPTIM1          154
+#define CK_BUS_LPTIM2          155
+#define CK_BUS_SPI2            156
+#define CK_BUS_SPI3            157
+#define CK_BUS_SPDIFRX         158
+#define CK_BUS_USART2          159
+#define CK_BUS_USART3          160
+#define CK_BUS_UART4           161
+#define CK_BUS_UART5           162
+#define CK_BUS_I2C1            163
+#define CK_BUS_I2C2            164
+#define CK_BUS_I2C3            165
+#define CK_BUS_I2C4            166
+#define CK_BUS_I2C5            167
+#define CK_BUS_I2C6            168
+#define CK_BUS_I2C7            169
+#define CK_BUS_I3C1            170
+#define CK_BUS_I3C2            171
+#define CK_BUS_I3C3            172
+#define CK_BUS_TIM1            173
+#define CK_BUS_TIM8            174
+#define CK_BUS_TIM15           175
+#define CK_BUS_TIM16           176
+#define CK_BUS_TIM17           177
+#define CK_BUS_TIM20           178
+#define CK_BUS_SAI1            179
+#define CK_BUS_SAI2            180
+#define CK_BUS_SAI3            181
+#define CK_BUS_SAI4            182
+#define CK_BUS_USART1          183
+#define CK_BUS_USART6          184
+#define CK_BUS_UART7           185
+#define CK_BUS_UART8           186
+#define CK_BUS_UART9           187
+#define CK_BUS_FDCAN           188
+#define CK_BUS_SPI1            189
+#define CK_BUS_SPI4            190
+#define CK_BUS_SPI5            191
+#define CK_BUS_SPI6            192
+#define CK_BUS_SPI7            193
+#define CK_BUS_BSEC            194
+#define CK_BUS_IWDG1           195
+#define CK_BUS_IWDG2           196
+#define CK_BUS_IWDG3           197
+#define CK_BUS_IWDG4           198
+#define CK_BUS_WWDG1           199
+#define CK_BUS_VREF            200
+#define CK_BUS_DTS             201
+#define CK_BUS_SERC            202
+#define CK_BUS_HDP             203
+#define CK_BUS_IS2M            204
+#define CK_BUS_DSI             205
+#define CK_BUS_LTDC            206
+#define CK_BUS_CSI             207
+#define CK_BUS_DCMIPP          208
+#define CK_BUS_DDRC            209
+#define CK_BUS_DDRCFG          210
+#define CK_BUS_GICV2M          211
+#define CK_BUS_USBTC           212
+#define CK_BUS_USB3PCIEPHY     214
+#define CK_BUS_STGEN           215
+#define CK_BUS_VDEC            216
+#define CK_BUS_VENC            217
+#define CK_SYSDBG              218
+#define CK_KER_TIM2            219
+#define CK_KER_TIM3            220
+#define CK_KER_TIM4            221
+#define CK_KER_TIM5            222
+#define CK_KER_TIM6            223
+#define CK_KER_TIM7            224
+#define CK_KER_TIM10           225
+#define CK_KER_TIM11           226
+#define CK_KER_TIM12           227
+#define CK_KER_TIM13           228
+#define CK_KER_TIM14           229
+#define CK_KER_TIM1            230
+#define CK_KER_TIM8            231
+#define CK_KER_TIM15           232
+#define CK_KER_TIM16           233
+#define CK_KER_TIM17           234
+#define CK_KER_TIM20           235
+#define CK_BUS_SYSRAM          236
+#define CK_BUS_VDERAM          237
+#define CK_BUS_RETRAM          238
+#define CK_BUS_OSPI1           239
+#define CK_BUS_OSPI2           240
+#define CK_BUS_OTFD1           241
+#define CK_BUS_OTFD2           242
+#define CK_BUS_SRAM1           243
+#define CK_BUS_SRAM2           244
+#define CK_BUS_SDMMC1          245
+#define CK_BUS_SDMMC2          246
+#define CK_BUS_SDMMC3          247
+#define CK_BUS_DDR             248
+#define CK_BUS_RISAF4          249
+#define CK_BUS_USB2OHCI                250
+#define CK_BUS_USB2EHCI                251
+#define CK_BUS_USB3DR          252
+#define CK_KER_LPTIM1          253
+#define CK_KER_LPTIM2          254
+#define CK_KER_USART2          255
+#define CK_KER_UART4           256
+#define CK_KER_USART3          257
+#define CK_KER_UART5           258
+#define CK_KER_SPI2            259
+#define CK_KER_SPI3            260
+#define CK_KER_SPDIFRX         261
+#define CK_KER_I2C1            262
+#define CK_KER_I2C2            263
+#define CK_KER_I3C1            264
+#define CK_KER_I3C2            265
+#define CK_KER_I2C3            266
+#define CK_KER_I2C5            267
+#define CK_KER_I3C3            268
+#define CK_KER_I2C4            269
+#define CK_KER_I2C6            270
+#define CK_KER_I2C7            271
+#define CK_KER_SPI1            272
+#define CK_KER_SPI4            273
+#define CK_KER_SPI5            274
+#define CK_KER_SPI6            275
+#define CK_KER_SPI7            276
+#define CK_KER_USART1          277
+#define CK_KER_USART6          278
+#define CK_KER_UART7           279
+#define CK_KER_UART8           280
+#define CK_KER_UART9           281
+#define CK_KER_MDF1            282
+#define CK_KER_SAI1            283
+#define CK_KER_SAI2            284
+#define CK_KER_SAI3            285
+#define CK_KER_SAI4            286
+#define CK_KER_FDCAN           287
+#define CK_KER_DSIBLANE                288
+#define CK_KER_DSIPHY          289
+#define CK_KER_CSI             290
+#define CK_KER_CSITXESC                291
+#define CK_KER_CSIPHY          292
+#define CK_KER_LVDSPHY         293
+#define CK_KER_STGEN           294
+#define CK_KER_USB3PCIEPHY     295
+#define CK_KER_USB2PHY2EN      296
+#define CK_KER_I3C4            297
+#define CK_KER_SPI8            298
+#define CK_KER_I2C8            299
+#define CK_KER_LPUART1         300
+#define CK_KER_LPTIM3          301
+#define CK_KER_LPTIM4          302
+#define CK_KER_LPTIM5          303
+#define CK_KER_TSDBG           304
+#define CK_KER_TPIU            305
+#define CK_BUS_ETR             306
+#define CK_BUS_SYSATB          307
+#define CK_KER_ADC12           308
+#define CK_KER_ADC3            309
+#define CK_KER_OSPI1           310
+#define CK_KER_OSPI2           311
+#define CK_KER_FMC             312
+#define CK_KER_SDMMC1          313
+#define CK_KER_SDMMC2          314
+#define CK_KER_SDMMC3          315
+#define CK_KER_ETH1            316
+#define CK_KER_ETH2            317
+#define CK_KER_ETH1PTP         318
+#define CK_KER_ETH2PTP         319
+#define CK_KER_USB2PHY1                320
+#define CK_KER_USB2PHY2                321
+#define CK_KER_ETHSW           322
+#define CK_KER_ETHSWREF                323
+#define CK_MCO1                        324
+#define CK_MCO2                        325
+#define CK_KER_DTS             326
+#define CK_ETH1_RX             327
+#define CK_ETH1_TX             328
+#define CK_ETH1_MAC            329
+#define CK_ETH2_RX             330
+#define CK_ETH2_TX             331
+#define CK_ETH2_MAC            332
+#define CK_ETH1_STP            333
+#define CK_ETH2_STP            334
+#define CK_KER_USBTC           335
+#define CK_BUS_ADF1            336
+#define CK_KER_ADF1            337
+#define CK_BUS_LVDS            338
+#define CK_KER_LTDC            339
+#define CK_KER_GPU             340
+#define CK_BUS_ETHSWACMCFG     341
+#define CK_BUS_ETHSWACMMSG     342
+#define HSE_DIV2_CK            343
+
+#define STM32MP25_LAST_CLK     344
+
+#define CK_SCMI_ICN_HS_MCU     0
+#define CK_SCMI_ICN_SDMMC      1
+#define CK_SCMI_ICN_DDR                2
+#define CK_SCMI_ICN_DISPLAY    3
+#define CK_SCMI_ICN_HSL                4
+#define CK_SCMI_ICN_NIC                5
+#define CK_SCMI_ICN_VID                6
+#define CK_SCMI_FLEXGEN_07     7
+#define CK_SCMI_FLEXGEN_08     8
+#define CK_SCMI_FLEXGEN_09     9
+#define CK_SCMI_FLEXGEN_10     10
+#define CK_SCMI_FLEXGEN_11     11
+#define CK_SCMI_FLEXGEN_12     12
+#define CK_SCMI_FLEXGEN_13     13
+#define CK_SCMI_FLEXGEN_14     14
+#define CK_SCMI_FLEXGEN_15     15
+#define CK_SCMI_FLEXGEN_16     16
+#define CK_SCMI_FLEXGEN_17     17
+#define CK_SCMI_FLEXGEN_18     18
+#define CK_SCMI_FLEXGEN_19     19
+#define CK_SCMI_FLEXGEN_20     20
+#define CK_SCMI_FLEXGEN_21     21
+#define CK_SCMI_FLEXGEN_22     22
+#define CK_SCMI_FLEXGEN_23     23
+#define CK_SCMI_FLEXGEN_24     24
+#define CK_SCMI_FLEXGEN_25     25
+#define CK_SCMI_FLEXGEN_26     26
+#define CK_SCMI_FLEXGEN_27     27
+#define CK_SCMI_FLEXGEN_28     28
+#define CK_SCMI_FLEXGEN_29     29
+#define CK_SCMI_FLEXGEN_30     30
+#define CK_SCMI_FLEXGEN_31     31
+#define CK_SCMI_FLEXGEN_32     32
+#define CK_SCMI_FLEXGEN_33     33
+#define CK_SCMI_FLEXGEN_34     34
+#define CK_SCMI_FLEXGEN_35     35
+#define CK_SCMI_FLEXGEN_36     36
+#define CK_SCMI_FLEXGEN_37     37
+#define CK_SCMI_FLEXGEN_38     38
+#define CK_SCMI_FLEXGEN_39     39
+#define CK_SCMI_FLEXGEN_40     40
+#define CK_SCMI_FLEXGEN_41     41
+#define CK_SCMI_FLEXGEN_42     42
+#define CK_SCMI_FLEXGEN_43     43
+#define CK_SCMI_FLEXGEN_44     44
+#define CK_SCMI_FLEXGEN_45     45
+#define CK_SCMI_FLEXGEN_46     46
+#define CK_SCMI_FLEXGEN_47     47
+#define CK_SCMI_FLEXGEN_48     48
+#define CK_SCMI_FLEXGEN_49     49
+#define CK_SCMI_FLEXGEN_50     50
+#define CK_SCMI_FLEXGEN_51     51
+#define CK_SCMI_FLEXGEN_52     52
+#define CK_SCMI_FLEXGEN_53     53
+#define CK_SCMI_FLEXGEN_54     54
+#define CK_SCMI_FLEXGEN_55     55
+#define CK_SCMI_FLEXGEN_56     56
+#define CK_SCMI_FLEXGEN_57     57
+#define CK_SCMI_FLEXGEN_58     58
+#define CK_SCMI_FLEXGEN_59     59
+#define CK_SCMI_FLEXGEN_60     60
+#define CK_SCMI_FLEXGEN_61     61
+#define CK_SCMI_FLEXGEN_62     62
+#define CK_SCMI_FLEXGEN_63     63
+#define CK_SCMI_ICN_LS_MCU     64
+#define CK_SCMI_HSE            65
+#define CK_SCMI_LSE            66
+#define CK_SCMI_HSI            67
+#define CK_SCMI_LSI            68
+#define CK_SCMI_MSI            69
+#define CK_SCMI_HSE_DIV2       70
+#define CK_SCMI_CPU1           71
+#define CK_SCMI_SYSCPU1                72
+#define CK_SCMI_PLL2           73
+#define CK_SCMI_PLL3           74
+#define CK_SCMI_RTC            75
+#define CK_SCMI_RTCCK          76
+#define CK_SCMI_ICN_APB1       77
+#define CK_SCMI_ICN_APB2       78
+#define CK_SCMI_ICN_APB3       79
+#define CK_SCMI_ICN_APB4       80
+#define CK_SCMI_ICN_APBDBG     81
+#define CK_SCMI_TIMG1          82
+#define CK_SCMI_TIMG2          83
+#define CK_SCMI_BKPSRAM                84
+#define CK_SCMI_BSEC           85
+#define CK_SCMI_ETR            87
+#define CK_SCMI_FMC            88
+#define CK_SCMI_GPIOA          89
+#define CK_SCMI_GPIOB          90
+#define CK_SCMI_GPIOC          91
+#define CK_SCMI_GPIOD          92
+#define CK_SCMI_GPIOE          93
+#define CK_SCMI_GPIOF          94
+#define CK_SCMI_GPIOG          95
+#define CK_SCMI_GPIOH          96
+#define CK_SCMI_GPIOI          97
+#define CK_SCMI_GPIOJ          98
+#define CK_SCMI_GPIOK          99
+#define CK_SCMI_GPIOZ          100
+#define CK_SCMI_HPDMA1         101
+#define CK_SCMI_HPDMA2         102
+#define CK_SCMI_HPDMA3         103
+#define CK_SCMI_HSEM           104
+#define CK_SCMI_IPCC1          105
+#define CK_SCMI_IPCC2          106
+#define CK_SCMI_LPDMA          107
+#define CK_SCMI_RETRAM         108
+#define CK_SCMI_SRAM1          109
+#define CK_SCMI_SRAM2          110
+#define CK_SCMI_LPSRAM1                111
+#define CK_SCMI_LPSRAM2                112
+#define CK_SCMI_LPSRAM3                113
+#define CK_SCMI_VDERAM         114
+#define CK_SCMI_SYSRAM         115
+#define CK_SCMI_OSPI1          116
+#define CK_SCMI_OSPI2          117
+#define CK_SCMI_TPIU           118
+#define CK_SCMI_SYSDBG         119
+#define CK_SCMI_SYSATB         120
+#define CK_SCMI_TSDBG          121
+#define CK_SCMI_STM500         122
+
+#endif /* _DT_BINDINGS_STM32MP25_CLKS_H_ */
diff --git a/include/dt-bindings/dma/fsl-edma.h b/include/dt-bindings/dma/fsl-edma.h
new file mode 100644 (file)
index 0000000..fd11478
--- /dev/null
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+
+#ifndef _FSL_EDMA_DT_BINDING_H_
+#define _FSL_EDMA_DT_BINDING_H_
+
+/* Receive Channel */
+#define FSL_EDMA_RX            0x1
+
+/* iMX8 audio remote DMA */
+#define FSL_EDMA_REMOTE                0x2
+
+/* FIFO is continue memory region */
+#define FSL_EDMA_MULTI_FIFO    0x4
+
+/* Channel need stick to even channel */
+#define FSL_EDMA_EVEN_CH       0x8
+
+/* Channel need stick to odd channel */
+#define FSL_EDMA_ODD_CH                0x10
+
+#endif
diff --git a/include/dt-bindings/iio/qcom,spmi-adc7-pm7325.h b/include/dt-bindings/iio/qcom,spmi-adc7-pm7325.h
new file mode 100644 (file)
index 0000000..9690801
--- /dev/null
@@ -0,0 +1,69 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_QCOM_SPMI_VADC_PM7325_H
+#define _DT_BINDINGS_QCOM_SPMI_VADC_PM7325_H
+
+#ifndef PM7325_SID
+#define PM7325_SID                                     1
+#endif
+
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
+
+/* ADC channels for PM7325_ADC for PMIC7 */
+#define PM7325_ADC7_REF_GND                    (PM7325_SID << 8 | ADC7_REF_GND)
+#define PM7325_ADC7_1P25VREF                   (PM7325_SID << 8 | ADC7_1P25VREF)
+#define PM7325_ADC7_VREF_VADC                  (PM7325_SID << 8 | ADC7_VREF_VADC)
+#define PM7325_ADC7_DIE_TEMP                   (PM7325_SID << 8 | ADC7_DIE_TEMP)
+
+#define PM7325_ADC7_AMUX_THM1                  (PM7325_SID << 8 | ADC7_AMUX_THM1)
+#define PM7325_ADC7_AMUX_THM2                  (PM7325_SID << 8 | ADC7_AMUX_THM2)
+#define PM7325_ADC7_AMUX_THM3                  (PM7325_SID << 8 | ADC7_AMUX_THM3)
+#define PM7325_ADC7_AMUX_THM4                  (PM7325_SID << 8 | ADC7_AMUX_THM4)
+#define PM7325_ADC7_AMUX_THM5                  (PM7325_SID << 8 | ADC7_AMUX_THM5)
+#define PM7325_ADC7_GPIO1                      (PM7325_SID << 8 | ADC7_GPIO1)
+#define PM7325_ADC7_GPIO2                      (PM7325_SID << 8 | ADC7_GPIO2)
+#define PM7325_ADC7_GPIO3                      (PM7325_SID << 8 | ADC7_GPIO3)
+#define PM7325_ADC7_GPIO4                      (PM7325_SID << 8 | ADC7_GPIO4)
+
+/* 30k pull-up1 */
+#define PM7325_ADC7_AMUX_THM1_30K_PU           (PM7325_SID << 8 | ADC7_AMUX_THM1_30K_PU)
+#define PM7325_ADC7_AMUX_THM2_30K_PU           (PM7325_SID << 8 | ADC7_AMUX_THM2_30K_PU)
+#define PM7325_ADC7_AMUX_THM3_30K_PU           (PM7325_SID << 8 | ADC7_AMUX_THM3_30K_PU)
+#define PM7325_ADC7_AMUX_THM4_30K_PU           (PM7325_SID << 8 | ADC7_AMUX_THM4_30K_PU)
+#define PM7325_ADC7_AMUX_THM5_30K_PU           (PM7325_SID << 8 | ADC7_AMUX_THM5_30K_PU)
+#define PM7325_ADC7_GPIO1_30K_PU               (PM7325_SID << 8 | ADC7_GPIO1_30K_PU)
+#define PM7325_ADC7_GPIO2_30K_PU               (PM7325_SID << 8 | ADC7_GPIO2_30K_PU)
+#define PM7325_ADC7_GPIO3_30K_PU               (PM7325_SID << 8 | ADC7_GPIO3_30K_PU)
+#define PM7325_ADC7_GPIO4_30K_PU               (PM7325_SID << 8 | ADC7_GPIO4_30K_PU)
+
+/* 100k pull-up2 */
+#define PM7325_ADC7_AMUX_THM1_100K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM1_100K_PU)
+#define PM7325_ADC7_AMUX_THM2_100K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM2_100K_PU)
+#define PM7325_ADC7_AMUX_THM3_100K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM3_100K_PU)
+#define PM7325_ADC7_AMUX_THM4_100K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM4_100K_PU)
+#define PM7325_ADC7_AMUX_THM5_100K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM5_100K_PU)
+#define PM7325_ADC7_GPIO1_100K_PU              (PM7325_SID << 8 | ADC7_GPIO1_100K_PU)
+#define PM7325_ADC7_GPIO2_100K_PU              (PM7325_SID << 8 | ADC7_GPIO2_100K_PU)
+#define PM7325_ADC7_GPIO3_100K_PU              (PM7325_SID << 8 | ADC7_GPIO3_100K_PU)
+#define PM7325_ADC7_GPIO4_100K_PU              (PM7325_SID << 8 | ADC7_GPIO4_100K_PU)
+
+/* 400k pull-up3 */
+#define PM7325_ADC7_AMUX_THM1_400K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM1_400K_PU)
+#define PM7325_ADC7_AMUX_THM2_400K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM2_400K_PU)
+#define PM7325_ADC7_AMUX_THM3_400K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM3_400K_PU)
+#define PM7325_ADC7_AMUX_THM4_400K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM4_400K_PU)
+#define PM7325_ADC7_AMUX_THM5_400K_PU          (PM7325_SID << 8 | ADC7_AMUX_THM5_400K_PU)
+#define PM7325_ADC7_GPIO1_400K_PU              (PM7325_SID << 8 | ADC7_GPIO1_400K_PU)
+#define PM7325_ADC7_GPIO2_400K_PU              (PM7325_SID << 8 | ADC7_GPIO2_400K_PU)
+#define PM7325_ADC7_GPIO3_400K_PU              (PM7325_SID << 8 | ADC7_GPIO3_400K_PU)
+#define PM7325_ADC7_GPIO4_400K_PU              (PM7325_SID << 8 | ADC7_GPIO4_400K_PU)
+
+/* 1/3 Divider */
+#define PM7325_ADC7_GPIO4_DIV3                 (PM7325_SID << 8 | ADC7_GPIO4_DIV3)
+
+#define PM7325_ADC7_VPH_PWR                    (PM7325_SID << 8 | ADC7_VPH_PWR)
+
+#endif /* _DT_BINDINGS_QCOM_SPMI_VADC_PM7325_H */
diff --git a/include/dt-bindings/iio/qcom,spmi-adc7-smb139x.h b/include/dt-bindings/iio/qcom,spmi-adc7-smb139x.h
new file mode 100644 (file)
index 0000000..c0680d1
--- /dev/null
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause */
+/*
+ * Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_QCOM_SPMI_VADC_SMB139X_H
+#define _DT_BINDINGS_QCOM_SPMI_VADC_SMB139X_H
+
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
+
+#define SMB139x_1_ADC7_SMB_TEMP                        (SMB139x_1_SID << 8 | ADC7_SMB_TEMP)
+#define SMB139x_1_ADC7_ICHG_SMB                        (SMB139x_1_SID << 8 | ADC7_ICHG_SMB)
+#define SMB139x_1_ADC7_IIN_SMB                 (SMB139x_1_SID << 8 | ADC7_IIN_SMB)
+
+#define SMB139x_2_ADC7_SMB_TEMP                        (SMB139x_2_SID << 8 | ADC7_SMB_TEMP)
+#define SMB139x_2_ADC7_ICHG_SMB                        (SMB139x_2_SID << 8 | ADC7_ICHG_SMB)
+#define SMB139x_2_ADC7_IIN_SMB                 (SMB139x_2_SID << 8 | ADC7_IIN_SMB)
+
+#endif
index 08adfe25964c9313bcf16f364367639672c3f8ce..ef07ecd4d5857b1131f371b4637d3120167f619b 100644 (file)
 #define ADC7_GPIO3                             0x0c
 #define ADC7_GPIO4                             0x0d
 
+#define ADC7_SMB_TEMP                          0x06
 #define ADC7_CHG_TEMP                          0x10
 #define ADC7_USB_IN_V_16                       0x11
 #define ADC7_VDC_16                            0x12
 #define ADC7_CC1_ID                            0x13
 #define ADC7_VREF_BAT_THERM                    0x15
 #define ADC7_IIN_FB                            0x17
+#define ADC7_ICHG_SMB                          0x18
+#define ADC7_IIN_SMB                           0x19
 
 /* 30k pull-up1 */
 #define ADC7_AMUX_THM1_30K_PU                  0x24
diff --git a/include/dt-bindings/interconnect/qcom,sm6115.h b/include/dt-bindings/interconnect/qcom,sm6115.h
new file mode 100644 (file)
index 0000000..21090e5
--- /dev/null
@@ -0,0 +1,111 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_SM6115_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_SM6115_H
+
+/* BIMC */
+#define MASTER_AMPSS_M0                                0
+#define MASTER_SNOC_BIMC_RT                    1
+#define MASTER_SNOC_BIMC_NRT                   2
+#define SNOC_BIMC_MAS                          3
+#define MASTER_GRAPHICS_3D                     4
+#define MASTER_TCU_0                           5
+#define SLAVE_EBI_CH0                          6
+#define BIMC_SNOC_SLV                          7
+
+/* CNOC */
+#define SNOC_CNOC_MAS                          0
+#define MASTER_QDSS_DAP                                1
+#define SLAVE_AHB2PHY_USB                      2
+#define SLAVE_APSS_THROTTLE_CFG                        3
+#define SLAVE_BIMC_CFG                         4
+#define SLAVE_BOOT_ROM                         5
+#define SLAVE_CAMERA_NRT_THROTTLE_CFG          6
+#define SLAVE_CAMERA_RT_THROTTLE_CFG           7
+#define SLAVE_CAMERA_CFG                       8
+#define SLAVE_CLK_CTL                          9
+#define SLAVE_RBCPR_CX_CFG                     10
+#define SLAVE_RBCPR_MX_CFG                     11
+#define SLAVE_CRYPTO_0_CFG                     12
+#define SLAVE_DCC_CFG                          13
+#define SLAVE_DDR_PHY_CFG                      14
+#define SLAVE_DDR_SS_CFG                       15
+#define SLAVE_DISPLAY_CFG                      16
+#define SLAVE_DISPLAY_THROTTLE_CFG             17
+#define SLAVE_GPU_CFG                          18
+#define SLAVE_GPU_THROTTLE_CFG                 19
+#define SLAVE_HWKM_CORE                                20
+#define SLAVE_IMEM_CFG                         21
+#define SLAVE_IPA_CFG                          22
+#define SLAVE_LPASS                            23
+#define SLAVE_MAPSS                            24
+#define SLAVE_MDSP_MPU_CFG                     25
+#define SLAVE_MESSAGE_RAM                      26
+#define SLAVE_CNOC_MSS                         27
+#define SLAVE_PDM                              28
+#define SLAVE_PIMEM_CFG                                29
+#define SLAVE_PKA_CORE                         30
+#define SLAVE_PMIC_ARB                         31
+#define SLAVE_QDSS_CFG                         32
+#define SLAVE_QM_CFG                           33
+#define SLAVE_QM_MPU_CFG                       34
+#define SLAVE_QPIC                             35
+#define SLAVE_QUP_0                            36
+#define SLAVE_RPM                              37
+#define SLAVE_SDCC_1                           38
+#define SLAVE_SDCC_2                           39
+#define SLAVE_SECURITY                         40
+#define SLAVE_SNOC_CFG                         41
+#define SLAVE_TCSR                             42
+#define SLAVE_TLMM                             43
+#define SLAVE_USB3                             44
+#define SLAVE_VENUS_CFG                                45
+#define SLAVE_VENUS_THROTTLE_CFG               46
+#define SLAVE_VSENSE_CTRL_CFG                  47
+#define SLAVE_SERVICE_CNOC                     48
+
+/* SNOC */
+#define MASTER_CRYPTO_CORE0                    0
+#define MASTER_SNOC_CFG                                1
+#define MASTER_TIC                             2
+#define MASTER_ANOC_SNOC                       3
+#define BIMC_SNOC_MAS                          4
+#define MASTER_PIMEM                           5
+#define MASTER_QDSS_BAM                                6
+#define MASTER_QPIC                            7
+#define MASTER_QUP_0                           8
+#define MASTER_IPA                             9
+#define MASTER_QDSS_ETR                                10
+#define MASTER_SDCC_1                          11
+#define MASTER_SDCC_2                          12
+#define MASTER_USB3                            13
+#define SLAVE_APPSS                            14
+#define SNOC_CNOC_SLV                          15
+#define SLAVE_OCIMEM                           16
+#define SLAVE_PIMEM                            17
+#define SNOC_BIMC_SLV                          18
+#define SLAVE_SERVICE_SNOC                     19
+#define SLAVE_QDSS_STM                         20
+#define SLAVE_TCU                              21
+#define SLAVE_ANOC_SNOC                                22
+
+/* CLK Virtual */
+#define MASTER_QUP_CORE_0                      0
+#define SLAVE_QUP_CORE_0                       1
+
+/* MMRT Virtual */
+#define MASTER_CAMNOC_HF                       0
+#define MASTER_MDP_PORT0                       1
+#define SLAVE_SNOC_BIMC_RT                     2
+
+/* MMNRT Virtual */
+#define MASTER_CAMNOC_SF                       0
+#define MASTER_VIDEO_P0                                1
+#define MASTER_VIDEO_PROC                      2
+#define SLAVE_SNOC_BIMC_NRT                    3
+
+#endif
diff --git a/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h b/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h
new file mode 100644 (file)
index 0000000..6c1eaf0
--- /dev/null
@@ -0,0 +1,154 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_SM8650_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_SM8650_H
+
+#define MASTER_QSPI_0                          0
+#define MASTER_QUP_1                           1
+#define MASTER_QUP_3                           2
+#define MASTER_SDCC_4                          3
+#define MASTER_UFS_MEM                         4
+#define MASTER_USB3_0                          5
+#define SLAVE_A1NOC_SNOC                       6
+
+#define MASTER_QDSS_BAM                                0
+#define MASTER_QUP_2                           1
+#define MASTER_CRYPTO                          2
+#define MASTER_IPA                             3
+#define MASTER_SP                              4
+#define MASTER_QDSS_ETR                                5
+#define MASTER_QDSS_ETR_1                      6
+#define MASTER_SDCC_2                          7
+#define SLAVE_A2NOC_SNOC                       8
+
+#define MASTER_QUP_CORE_0                      0
+#define MASTER_QUP_CORE_1                      1
+#define MASTER_QUP_CORE_2                      2
+#define SLAVE_QUP_CORE_0                       3
+#define SLAVE_QUP_CORE_1                       4
+#define SLAVE_QUP_CORE_2                       5
+
+#define MASTER_CNOC_CFG                                0
+#define SLAVE_AHB2PHY_SOUTH                    1
+#define SLAVE_AHB2PHY_NORTH                    2
+#define SLAVE_CAMERA_CFG                       3
+#define SLAVE_CLK_CTL                          4
+#define SLAVE_RBCPR_CX_CFG                     5
+#define SLAVE_CPR_HMX                          6
+#define SLAVE_RBCPR_MMCX_CFG                   7
+#define SLAVE_RBCPR_MXA_CFG                    8
+#define SLAVE_RBCPR_MXC_CFG                    9
+#define SLAVE_CPR_NSPCX                                10
+#define SLAVE_CRYPTO_0_CFG                     11
+#define SLAVE_CX_RDPM                          12
+#define SLAVE_DISPLAY_CFG                      13
+#define SLAVE_GFX3D_CFG                                14
+#define SLAVE_I2C                              15
+#define SLAVE_I3C_IBI0_CFG                     16
+#define SLAVE_I3C_IBI1_CFG                     17
+#define SLAVE_IMEM_CFG                         18
+#define SLAVE_CNOC_MSS                         19
+#define SLAVE_MX_2_RDPM                                20
+#define SLAVE_MX_RDPM                          21
+#define SLAVE_PCIE_0_CFG                       22
+#define SLAVE_PCIE_1_CFG                       23
+#define SLAVE_PCIE_RSCC                                24
+#define SLAVE_PDM                              25
+#define SLAVE_PRNG                             26
+#define SLAVE_QDSS_CFG                         27
+#define SLAVE_QSPI_0                           28
+#define SLAVE_QUP_3                            29
+#define SLAVE_QUP_1                            30
+#define SLAVE_QUP_2                            31
+#define SLAVE_SDCC_2                           32
+#define SLAVE_SDCC_4                           33
+#define SLAVE_SPSS_CFG                         34
+#define SLAVE_TCSR                             35
+#define SLAVE_TLMM                             36
+#define SLAVE_UFS_MEM_CFG                      37
+#define SLAVE_USB3_0                           38
+#define SLAVE_VENUS_CFG                                39
+#define SLAVE_VSENSE_CTRL_CFG                  40
+#define SLAVE_CNOC_MNOC_CFG                    41
+#define SLAVE_NSP_QTB_CFG                      42
+#define SLAVE_PCIE_ANOC_CFG                    43
+#define SLAVE_SERVICE_CNOC_CFG                 44
+#define SLAVE_QDSS_STM                         45
+#define SLAVE_TCU                              46
+
+#define MASTER_GEM_NOC_CNOC                    0
+#define MASTER_GEM_NOC_PCIE_SNOC               1
+#define SLAVE_AOSS                             2
+#define SLAVE_IPA_CFG                          3
+#define SLAVE_IPC_ROUTER_CFG                   4
+#define SLAVE_TME_CFG                          5
+#define SLAVE_APPSS                            6
+#define SLAVE_CNOC_CFG                         7
+#define SLAVE_DDRSS_CFG                                8
+#define SLAVE_IMEM                             9
+#define SLAVE_SERVICE_CNOC                     10
+#define SLAVE_PCIE_0                           11
+#define SLAVE_PCIE_1                           12
+
+#define MASTER_GPU_TCU                         0
+#define MASTER_SYS_TCU                         1
+#define MASTER_UBWC_P_TCU                      2
+#define MASTER_APPSS_PROC                      3
+#define MASTER_GFX3D                           4
+#define MASTER_LPASS_GEM_NOC                   5
+#define MASTER_MSS_PROC                                6
+#define MASTER_MNOC_HF_MEM_NOC                 7
+#define MASTER_MNOC_SF_MEM_NOC                 8
+#define MASTER_COMPUTE_NOC                     9
+#define MASTER_ANOC_PCIE_GEM_NOC               10
+#define MASTER_SNOC_SF_MEM_NOC                 11
+#define MASTER_UBWC_P                          12
+#define MASTER_GIC                             13
+#define SLAVE_GEM_NOC_CNOC                     14
+#define SLAVE_LLCC                             15
+#define SLAVE_MEM_NOC_PCIE_SNOC                        16
+
+#define MASTER_LPIAON_NOC                      0
+#define SLAVE_LPASS_GEM_NOC                    1
+
+#define MASTER_LPASS_LPINOC                    0
+#define SLAVE_LPIAON_NOC_LPASS_AG_NOC          1
+
+#define MASTER_LPASS_PROC                      0
+#define SLAVE_LPICX_NOC_LPIAON_NOC             1
+
+#define MASTER_LLCC                            0
+#define SLAVE_EBI1                             1
+
+#define MASTER_CAMNOC_HF                       0
+#define MASTER_CAMNOC_ICP                      1
+#define MASTER_CAMNOC_SF                       2
+#define MASTER_MDP                             3
+#define MASTER_CDSP_HCP                                4
+#define MASTER_VIDEO                           5
+#define MASTER_VIDEO_CV_PROC                   6
+#define MASTER_VIDEO_PROC                      7
+#define MASTER_VIDEO_V_PROC                    8
+#define MASTER_CNOC_MNOC_CFG                   9
+#define SLAVE_MNOC_HF_MEM_NOC                  10
+#define SLAVE_MNOC_SF_MEM_NOC                  11
+#define SLAVE_SERVICE_MNOC                     12
+
+#define MASTER_CDSP_PROC                       0
+#define SLAVE_CDSP_MEM_NOC                     1
+
+#define MASTER_PCIE_ANOC_CFG                   0
+#define MASTER_PCIE_0                          1
+#define MASTER_PCIE_1                          2
+#define SLAVE_ANOC_PCIE_GEM_NOC                        3
+#define SLAVE_SERVICE_PCIE_ANOC                        4
+
+#define MASTER_A1NOC_SNOC                      0
+#define MASTER_A2NOC_SNOC                      1
+#define SLAVE_SNOC_GEM_NOC_SF                  2
+
+#endif
diff --git a/include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h b/include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h
new file mode 100644 (file)
index 0000000..a38c347
--- /dev/null
@@ -0,0 +1,207 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_X1E80100_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_X1E80100_H
+
+#define MASTER_QSPI_0                          0
+#define MASTER_QUP_1                           1
+#define MASTER_SDCC_4                          2
+#define MASTER_UFS_MEM                         3
+#define SLAVE_A1NOC_SNOC                       4
+
+#define MASTER_QUP_0                           0
+#define MASTER_QUP_2                           1
+#define MASTER_CRYPTO                          2
+#define MASTER_SP                              3
+#define MASTER_QDSS_ETR                                4
+#define MASTER_QDSS_ETR_1                      5
+#define MASTER_SDCC_2                          6
+#define SLAVE_A2NOC_SNOC                       7
+
+#define MASTER_DDR_PERF_MODE                   0
+#define MASTER_QUP_CORE_0                      1
+#define MASTER_QUP_CORE_1                      2
+#define MASTER_QUP_CORE_2                      3
+#define SLAVE_DDR_PERF_MODE                    4
+#define SLAVE_QUP_CORE_0                       5
+#define SLAVE_QUP_CORE_1                       6
+#define SLAVE_QUP_CORE_2                       7
+
+#define MASTER_CNOC_CFG                                0
+#define SLAVE_AHB2PHY_SOUTH                    1
+#define SLAVE_AHB2PHY_NORTH                    2
+#define SLAVE_AHB2PHY_2                                3
+#define SLAVE_AV1_ENC_CFG                      4
+#define SLAVE_CAMERA_CFG                       5
+#define SLAVE_CLK_CTL                          6
+#define SLAVE_CRYPTO_0_CFG                     7
+#define SLAVE_DISPLAY_CFG                      8
+#define SLAVE_GFX3D_CFG                                9
+#define SLAVE_IMEM_CFG                         10
+#define SLAVE_IPC_ROUTER_CFG                   11
+#define SLAVE_PCIE_0_CFG                       12
+#define SLAVE_PCIE_1_CFG                       13
+#define SLAVE_PCIE_2_CFG                       14
+#define SLAVE_PCIE_3_CFG                       15
+#define SLAVE_PCIE_4_CFG                       16
+#define SLAVE_PCIE_5_CFG                       17
+#define SLAVE_PCIE_6A_CFG                      18
+#define SLAVE_PCIE_6B_CFG                      19
+#define SLAVE_PCIE_RSC_CFG                     20
+#define SLAVE_PDM                              21
+#define SLAVE_PRNG                             22
+#define SLAVE_QDSS_CFG                         23
+#define SLAVE_QSPI_0                           24
+#define SLAVE_QUP_0                            25
+#define SLAVE_QUP_1                            26
+#define SLAVE_QUP_2                            27
+#define SLAVE_SDCC_2                           28
+#define SLAVE_SDCC_4                           29
+#define SLAVE_SMMUV3_CFG                       30
+#define SLAVE_TCSR                             31
+#define SLAVE_TLMM                             32
+#define SLAVE_UFS_MEM_CFG                      33
+#define SLAVE_USB2                             34
+#define SLAVE_USB3_0                           35
+#define SLAVE_USB3_1                           36
+#define SLAVE_USB3_2                           37
+#define SLAVE_USB3_MP                          38
+#define SLAVE_USB4_0                           39
+#define SLAVE_USB4_1                           40
+#define SLAVE_USB4_2                           41
+#define SLAVE_VENUS_CFG                                42
+#define SLAVE_LPASS_QTB_CFG                    43
+#define SLAVE_CNOC_MNOC_CFG                    44
+#define SLAVE_NSP_QTB_CFG                      45
+#define SLAVE_QDSS_STM                         46
+#define SLAVE_TCU                              47
+
+#define MASTER_GEM_NOC_CNOC                    0
+#define MASTER_GEM_NOC_PCIE_SNOC               1
+#define SLAVE_AOSS                             2
+#define SLAVE_TME_CFG                          3
+#define SLAVE_APPSS                            4
+#define SLAVE_CNOC_CFG                         5
+#define SLAVE_BOOT_IMEM                                6
+#define SLAVE_IMEM                             7
+#define SLAVE_PCIE_0                           8
+#define SLAVE_PCIE_1                           9
+#define SLAVE_PCIE_2                           10
+#define SLAVE_PCIE_3                           11
+#define SLAVE_PCIE_4                           12
+#define SLAVE_PCIE_5                           13
+#define SLAVE_PCIE_6A                          14
+#define SLAVE_PCIE_6B                          15
+
+#define MASTER_GPU_TCU                         0
+#define MASTER_PCIE_TCU                                1
+#define MASTER_SYS_TCU                         2
+#define MASTER_APPSS_PROC                      3
+#define MASTER_GFX3D                           4
+#define MASTER_LPASS_GEM_NOC                   5
+#define MASTER_MNOC_HF_MEM_NOC                 6
+#define MASTER_MNOC_SF_MEM_NOC                 7
+#define MASTER_COMPUTE_NOC                     8
+#define MASTER_ANOC_PCIE_GEM_NOC               9
+#define MASTER_SNOC_SF_MEM_NOC                 10
+#define MASTER_GIC2                            11
+#define SLAVE_GEM_NOC_CNOC                     12
+#define SLAVE_LLCC                             13
+#define SLAVE_MEM_NOC_PCIE_SNOC                        14
+#define MASTER_MNOC_HF_MEM_NOC_DISP            15
+#define MASTER_ANOC_PCIE_GEM_NOC_DISP          16
+#define SLAVE_LLCC_DISP                                17
+#define MASTER_ANOC_PCIE_GEM_NOC_PCIE          18
+#define SLAVE_LLCC_PCIE                                19
+
+#define MASTER_LPIAON_NOC                      0
+#define SLAVE_LPASS_GEM_NOC                    1
+
+#define MASTER_LPASS_LPINOC                    0
+#define SLAVE_LPIAON_NOC_LPASS_AG_NOC          1
+
+#define MASTER_LPASS_PROC                      0
+#define SLAVE_LPICX_NOC_LPIAON_NOC             1
+
+#define MASTER_LLCC                            0
+#define SLAVE_EBI1                             1
+#define MASTER_LLCC_DISP                       2
+#define SLAVE_EBI1_DISP                                3
+#define MASTER_LLCC_PCIE                       4
+#define SLAVE_EBI1_PCIE                                5
+
+#define MASTER_AV1_ENC                         0
+#define MASTER_CAMNOC_HF                       1
+#define MASTER_CAMNOC_ICP                      2
+#define MASTER_CAMNOC_SF                       3
+#define MASTER_EVA                             4
+#define MASTER_MDP                             5
+#define MASTER_VIDEO                           6
+#define MASTER_VIDEO_CV_PROC                   7
+#define MASTER_VIDEO_V_PROC                    8
+#define MASTER_CNOC_MNOC_CFG                   9
+#define SLAVE_MNOC_HF_MEM_NOC                  10
+#define SLAVE_MNOC_SF_MEM_NOC                  11
+#define SLAVE_SERVICE_MNOC                     12
+#define MASTER_MDP_DISP                                13
+#define SLAVE_MNOC_HF_MEM_NOC_DISP             14
+
+#define MASTER_CDSP_PROC                       0
+#define SLAVE_CDSP_MEM_NOC                     1
+
+#define MASTER_PCIE_NORTH                      0
+#define MASTER_PCIE_SOUTH                      1
+#define SLAVE_ANOC_PCIE_GEM_NOC                        2
+#define MASTER_PCIE_NORTH_PCIE                 3
+#define MASTER_PCIE_SOUTH_PCIE                 4
+#define SLAVE_ANOC_PCIE_GEM_NOC_PCIE           5
+
+#define MASTER_PCIE_3                          0
+#define MASTER_PCIE_4                          1
+#define MASTER_PCIE_5                          2
+#define SLAVE_PCIE_NORTH                       3
+#define MASTER_PCIE_3_PCIE                     4
+#define MASTER_PCIE_4_PCIE                     5
+#define MASTER_PCIE_5_PCIE                     6
+#define SLAVE_PCIE_NORTH_PCIE                  7
+
+#define MASTER_PCIE_0                          0
+#define MASTER_PCIE_1                          1
+#define MASTER_PCIE_2                          2
+#define MASTER_PCIE_6A                         3
+#define MASTER_PCIE_6B                         4
+#define SLAVE_PCIE_SOUTH                       5
+#define MASTER_PCIE_0_PCIE                     6
+#define MASTER_PCIE_1_PCIE                     7
+#define MASTER_PCIE_2_PCIE                     8
+#define MASTER_PCIE_6A_PCIE                    9
+#define MASTER_PCIE_6B_PCIE                    10
+#define SLAVE_PCIE_SOUTH_PCIE                  11
+
+#define MASTER_A1NOC_SNOC                      0
+#define MASTER_A2NOC_SNOC                      1
+#define MASTER_GIC1                            2
+#define MASTER_USB_NOC_SNOC                    3
+#define SLAVE_SNOC_GEM_NOC_SF                  4
+
+#define MASTER_AGGRE_USB_NORTH                 0
+#define MASTER_AGGRE_USB_SOUTH                 1
+#define SLAVE_USB_NOC_SNOC                     2
+
+#define MASTER_USB2                            0
+#define MASTER_USB3_MP                         1
+#define SLAVE_AGGRE_USB_NORTH                  2
+
+#define MASTER_USB3_0                          0
+#define MASTER_USB3_1                          1
+#define MASTER_USB3_2                          2
+#define MASTER_USB4_0                          3
+#define MASTER_USB4_1                          4
+#define MASTER_USB4_2                          5
+#define SLAVE_AGGRE_USB_SOUTH                  6
+
+#endif
index 44ec0c50e3409c1f75afa88c75e03471a9ec49ae..01fd0ac4dd08f358c98467ea86fd9468854cfc77 100644 (file)
@@ -10,5 +10,6 @@
 #define PWRC_G12A_VPU_ID               0
 #define PWRC_G12A_ETH_ID               1
 #define PWRC_G12A_NNA_ID               2
+#define PWRC_G12A_ISP_ID               3
 
 #endif
diff --git a/include/dt-bindings/reset/amlogic,c3-reset.h b/include/dt-bindings/reset/amlogic,c3-reset.h
new file mode 100644 (file)
index 0000000..d912786
--- /dev/null
@@ -0,0 +1,119 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2023 Amlogic, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_AMLOGIC_C3_RESET_H
+#define _DT_BINDINGS_AMLOGIC_C3_RESET_H
+
+/* RESET0 */
+/*                                             0-3 */
+#define RESET_USBCTRL                          4
+/*                                             5-7 */
+#define RESET_USBPHY20                         8
+/*                                             9 */
+#define RESET_USB2DRD                          10
+#define RESET_MIPI_DSI_HOST                    11
+#define RESET_MIPI_DSI_PHY                     12
+/*                                             13-20 */
+#define RESET_GE2D                             21
+#define RESET_DWAP                             22
+/*                                             23-31 */
+
+/* RESET1 */
+#define RESET_AUDIO                            32
+/*                                             33-34 */
+#define RESET_DDRAPB                           35
+#define RESET_DDR                              36
+#define RESET_DOS_CAPB3                                37
+#define RESET_DOS                              38
+/*                                             39-46 */
+#define RESET_NNA                              47
+#define RESET_ETHERNET                         48
+#define RESET_ISP                              49
+#define RESET_VC9000E_APB                      50
+#define RESET_VC9000E_A                                51
+/*                                             52 */
+#define RESET_VC9000E_CORE                     53
+/*                                             54-63 */
+
+/* RESET2 */
+#define RESET_ABUS_ARB                         64
+#define RESET_IRCTRL                           65
+/*                                             66 */
+#define RESET_TEMP_PII                         67
+/*                                             68-72 */
+#define RESET_SPICC_0                          73
+#define RESET_SPICC_1                          74
+#define RESET_RSA                              75
+
+/*                                             76-79 */
+#define RESET_MSR_CLK                          80
+#define RESET_SPIFC                            81
+#define RESET_SAR_ADC                          82
+/*                                             83-87 */
+#define RESET_ACODEC                           88
+/*                                             89-90 */
+#define RESET_WATCHDOG                         91
+/*                                             92-95 */
+
+/* RESET3 */
+#define RESET_ISP_NIC_GPV                      96
+#define RESET_ISP_NIC_MAIN                     97
+#define RESET_ISP_NIC_VCLK                     98
+#define RESET_ISP_NIC_VOUT                     99
+#define RESET_ISP_NIC_ALL                      100
+#define RESET_VOUT                             101
+#define RESET_VOUT_VENC                                102
+/*                                             103 */
+#define RESET_CVE_NIC_GPV                      104
+#define RESET_CVE_NIC_MAIN                     105
+#define RESET_CVE_NIC_GE2D                     106
+#define RESET_CVE_NIC_DW                       106
+#define RESET_CVE_NIC_CVE                      108
+#define RESET_CVE_NIC_ALL                      109
+#define RESET_CVE                              110
+/*                                             112-127 */
+
+/* RESET4 */
+#define RESET_RTC                              128
+#define RESET_PWM_AB                           129
+#define RESET_PWM_CD                           130
+#define RESET_PWM_EF                           131
+#define RESET_PWM_GH                           132
+#define RESET_PWM_IJ                           133
+#define RESET_PWM_KL                           134
+#define RESET_PWM_MN                           135
+/*                                             136-137 */
+#define RESET_UART_A                           138
+#define RESET_UART_B                           139
+#define RESET_UART_C                           140
+#define RESET_UART_D                           141
+#define RESET_UART_E                           142
+#define RESET_UART_F                           143
+#define RESET_I2C_S_A                          144
+#define RESET_I2C_M_A                          145
+#define RESET_I2C_M_B                          146
+#define RESET_I2C_M_C                          147
+#define RESET_I2C_M_D                          148
+/*                                             149-151 */
+#define RESET_SD_EMMC_A                                152
+#define RESET_SD_EMMC_B                                153
+#define RESET_SD_EMMC_C                                154
+
+/* RESET5 */
+/*                                             160-172 */
+#define RESET_BRG_NIC_NNA                      173
+#define RESET_BRG_MUX_NIC_MAIN                 174
+#define RESET_BRG_AO_NIC_ALL                   175
+/*                                             176-183 */
+#define RESET_BRG_NIC_VAPB                     184
+#define RESET_BRG_NIC_SDIO_B                   185
+#define RESET_BRG_NIC_SDIO_A                   186
+#define RESET_BRG_NIC_EMMC                     187
+#define RESET_BRG_NIC_DSU                      188
+#define RESET_BRG_NIC_SYSCLK                   189
+#define RESET_BRG_NIC_MAIN                     190
+#define RESET_BRG_NIC_ALL                      191
+
+#endif
diff --git a/include/dt-bindings/reset/mediatek,mt7988-resets.h b/include/dt-bindings/reset/mediatek,mt7988-resets.h
new file mode 100644 (file)
index 0000000..4933019
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023 Daniel Golle <daniel@makrotopia.org>
+ * Author: Daniel Golle <daniel@makrotopia.org>
+ */
+
+#ifndef _DT_BINDINGS_RESET_CONTROLLER_MT7988
+#define _DT_BINDINGS_RESET_CONTROLLER_MT7988
+
+/* ETHWARP resets */
+#define MT7988_ETHWARP_RST_SWITCH              0
+
+#endif  /* _DT_BINDINGS_RESET_CONTROLLER_MT7988 */
index ba9a5e9b889981d6191bc55468ce49566a515897..5a58c54e7d200cae37b8bfc205c472919368be82 100644 (file)
 #define MT8188_INFRA_RST1_THERMAL_CTRL_RST         1
 #define MT8188_INFRA_RST3_PTP_CTRL_RST             2
 
+#define MT8188_VDO0_RST_DISP_OVL0              0
+#define MT8188_VDO0_RST_FAKE_ENG0              1
+#define MT8188_VDO0_RST_DISP_CCORR0            2
+#define MT8188_VDO0_RST_DISP_MUTEX0            3
+#define MT8188_VDO0_RST_DISP_GAMMA0            4
+#define MT8188_VDO0_RST_DISP_DITHER0           5
+#define MT8188_VDO0_RST_DISP_WDMA0             6
+#define MT8188_VDO0_RST_DISP_RDMA0             7
+#define MT8188_VDO0_RST_DSI0                   8
+#define MT8188_VDO0_RST_DSI1                   9
+#define MT8188_VDO0_RST_DSC_WRAP0              10
+#define MT8188_VDO0_RST_VPP_MERGE0             11
+#define MT8188_VDO0_RST_DP_INTF0               12
+#define MT8188_VDO0_RST_DISP_AAL0              13
+#define MT8188_VDO0_RST_INLINEROT0             14
+#define MT8188_VDO0_RST_APB_BUS                        15
+#define MT8188_VDO0_RST_DISP_COLOR0            16
+#define MT8188_VDO0_RST_MDP_WROT0              17
+#define MT8188_VDO0_RST_DISP_RSZ0              18
+
+#define MT8188_VDO1_RST_SMI_LARB2              0
+#define MT8188_VDO1_RST_SMI_LARB3              1
+#define MT8188_VDO1_RST_GALS                   2
+#define MT8188_VDO1_RST_FAKE_ENG0              3
+#define MT8188_VDO1_RST_FAKE_ENG1              4
+#define MT8188_VDO1_RST_MDP_RDMA0              5
+#define MT8188_VDO1_RST_MDP_RDMA1              6
+#define MT8188_VDO1_RST_MDP_RDMA2              7
+#define MT8188_VDO1_RST_MDP_RDMA3              8
+#define MT8188_VDO1_RST_VPP_MERGE0             9
+#define MT8188_VDO1_RST_VPP_MERGE1             10
+#define MT8188_VDO1_RST_VPP_MERGE2             11
+#define MT8188_VDO1_RST_VPP_MERGE3             12
+#define MT8188_VDO1_RST_VPP_MERGE4             13
+#define MT8188_VDO1_RST_VPP2_TO_VDO1_DL_ASYNC  14
+#define MT8188_VDO1_RST_VPP3_TO_VDO1_DL_ASYNC  15
+#define MT8188_VDO1_RST_DISP_MUTEX             16
+#define MT8188_VDO1_RST_MDP_RDMA4              17
+#define MT8188_VDO1_RST_MDP_RDMA5              18
+#define MT8188_VDO1_RST_MDP_RDMA6              19
+#define MT8188_VDO1_RST_MDP_RDMA7              20
+#define MT8188_VDO1_RST_DP_INTF1_MMCK          21
+#define MT8188_VDO1_RST_DPI0_MM_CK             22
+#define MT8188_VDO1_RST_DPI1_MM_CK             23
+#define MT8188_VDO1_RST_MERGE0_DL_ASYNC                24
+#define MT8188_VDO1_RST_MERGE1_DL_ASYNC                25
+#define MT8188_VDO1_RST_MERGE2_DL_ASYNC                26
+#define MT8188_VDO1_RST_MERGE3_DL_ASYNC                27
+#define MT8188_VDO1_RST_MERGE4_DL_ASYNC                28
+#define MT8188_VDO1_RST_VDO0_DSC_TO_VDO1_DL_ASYNC      29
+#define MT8188_VDO1_RST_VDO0_MERGE_TO_VDO1_DL_ASYNC    30
+#define MT8188_VDO1_RST_PADDING0               31
+#define MT8188_VDO1_RST_PADDING1               32
+#define MT8188_VDO1_RST_PADDING2               33
+#define MT8188_VDO1_RST_PADDING3               34
+#define MT8188_VDO1_RST_PADDING4               35
+#define MT8188_VDO1_RST_PADDING5               36
+#define MT8188_VDO1_RST_PADDING6               37
+#define MT8188_VDO1_RST_PADDING7               38
+#define MT8188_VDO1_RST_DISP_RSZ0              39
+#define MT8188_VDO1_RST_DISP_RSZ1              40
+#define MT8188_VDO1_RST_DISP_RSZ2              41
+#define MT8188_VDO1_RST_DISP_RSZ3              42
+#define MT8188_VDO1_RST_HDR_VDO_FE0            43
+#define MT8188_VDO1_RST_HDR_GFX_FE0            44
+#define MT8188_VDO1_RST_HDR_VDO_BE             45
+#define MT8188_VDO1_RST_HDR_VDO_FE1            46
+#define MT8188_VDO1_RST_HDR_GFX_FE1            47
+#define MT8188_VDO1_RST_DISP_MIXER             48
+#define MT8188_VDO1_RST_HDR_VDO_FE0_DL_ASYNC   49
+#define MT8188_VDO1_RST_HDR_VDO_FE1_DL_ASYNC   50
+#define MT8188_VDO1_RST_HDR_GFX_FE0_DL_ASYNC   51
+#define MT8188_VDO1_RST_HDR_GFX_FE1_DL_ASYNC   52
+#define MT8188_VDO1_RST_HDR_VDO_BE_DL_ASYNC    53
+
 #endif  /* _DT_BINDINGS_RESET_CONTROLLER_MT8188 */
diff --git a/include/dt-bindings/reset/qcom,sm8650-gpucc.h b/include/dt-bindings/reset/qcom,sm8650-gpucc.h
new file mode 100644 (file)
index 0000000..f021a6c
--- /dev/null
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_RESET_QCOM_GPU_CC_SM8650_H
+#define _DT_BINDINGS_RESET_QCOM_GPU_CC_SM8650_H
+
+#define GPUCC_GPU_CC_ACD_BCR                   0
+#define GPUCC_GPU_CC_CX_BCR                    1
+#define GPUCC_GPU_CC_FAST_HUB_BCR              2
+#define GPUCC_GPU_CC_FF_BCR                    3
+#define GPUCC_GPU_CC_GFX3D_AON_BCR             4
+#define GPUCC_GPU_CC_GMU_BCR                   5
+#define GPUCC_GPU_CC_GX_BCR                    6
+#define GPUCC_GPU_CC_XO_BCR                    7
+#define GPUCC_GPU_CC_GX_ACD_IROOT_BCR          8
+
+#endif
diff --git a/include/dt-bindings/reset/st,stm32mp25-rcc.h b/include/dt-bindings/reset/st,stm32mp25-rcc.h
new file mode 100644 (file)
index 0000000..d561593
--- /dev/null
@@ -0,0 +1,167 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
+ * Author(s): Gabriel Fernandez <gabriel.fernandez@foss.st.com>
+ */
+
+#ifndef _DT_BINDINGS_STM32MP25_RESET_H_
+#define _DT_BINDINGS_STM32MP25_RESET_H_
+
+#define TIM1_R         0
+#define TIM2_R         1
+#define TIM3_R         2
+#define TIM4_R         3
+#define TIM5_R         4
+#define TIM6_R         5
+#define TIM7_R         6
+#define TIM8_R         7
+#define TIM10_R                8
+#define TIM11_R                9
+#define TIM12_R                10
+#define TIM13_R                11
+#define TIM14_R                12
+#define TIM15_R                13
+#define TIM16_R                14
+#define TIM17_R                15
+#define TIM20_R                16
+#define LPTIM1_R       17
+#define LPTIM2_R       18
+#define LPTIM3_R       19
+#define LPTIM4_R       20
+#define LPTIM5_R       21
+#define SPI1_R         22
+#define SPI2_R         23
+#define SPI3_R         24
+#define SPI4_R         25
+#define SPI5_R         26
+#define SPI6_R         27
+#define SPI7_R         28
+#define SPI8_R         29
+#define SPDIFRX_R      30
+#define USART1_R       31
+#define USART2_R       32
+#define USART3_R       33
+#define UART4_R                34
+#define UART5_R                35
+#define USART6_R       36
+#define UART7_R                37
+#define UART8_R                38
+#define UART9_R                39
+#define LPUART1_R      40
+#define IS2M_R         41
+#define I2C1_R         42
+#define I2C2_R         43
+#define I2C3_R         44
+#define I2C4_R         45
+#define I2C5_R         46
+#define I2C6_R         47
+#define I2C7_R         48
+#define I2C8_R         49
+#define SAI1_R         50
+#define SAI2_R         51
+#define SAI3_R         52
+#define SAI4_R         53
+#define MDF1_R         54
+#define MDF2_R         55
+#define FDCAN_R                56
+#define HDP_R          57
+#define ADC12_R                58
+#define ADC3_R         59
+#define ETH1_R         60
+#define ETH2_R         61
+#define USB2_R         62
+#define USB2PHY1_R     63
+#define USB2PHY2_R     64
+#define USB3DR_R       65
+#define USB3PCIEPHY_R  66
+#define USBTC_R                67
+#define ETHSW_R                68
+#define SDMMC1_R       69
+#define SDMMC1DLL_R    70
+#define SDMMC2_R       71
+#define SDMMC2DLL_R    72
+#define SDMMC3_R       73
+#define SDMMC3DLL_R    74
+#define GPU_R          75
+#define LTDC_R         76
+#define DSI_R          77
+#define LVDS_R         78
+#define CSI_R          79
+#define DCMIPP_R       80
+#define CCI_R          81
+#define VDEC_R         82
+#define VENC_R         83
+#define WWDG1_R                84
+#define WWDG2_R                85
+#define VREF_R         86
+#define DTS_R          87
+#define CRC_R          88
+#define SERC_R         89
+#define OSPIIOM_R      90
+#define I3C1_R         91
+#define I3C2_R         92
+#define I3C3_R         93
+#define I3C4_R         94
+#define IWDG2_KER_R    95
+#define IWDG4_KER_R    96
+#define RNG_R          97
+#define PKA_R          98
+#define SAES_R         99
+#define HASH_R         100
+#define CRYP1_R                101
+#define CRYP2_R                102
+#define PCIE_R         103
+#define OSPI1_R                104
+#define OSPI1DLL_R     105
+#define OSPI2_R                106
+#define OSPI2DLL_R     107
+#define FMC_R          108
+#define DBG_R          109
+#define GPIOA_R                110
+#define GPIOB_R                111
+#define GPIOC_R                112
+#define GPIOD_R                113
+#define GPIOE_R                114
+#define GPIOF_R                115
+#define GPIOG_R                116
+#define GPIOH_R                117
+#define GPIOI_R                118
+#define GPIOJ_R                119
+#define GPIOK_R                120
+#define GPIOZ_R                121
+#define HPDMA1_R       122
+#define HPDMA2_R       123
+#define HPDMA3_R       124
+#define LPDMA_R                125
+#define HSEM_R         126
+#define IPCC1_R                127
+#define IPCC2_R                128
+#define C2_HOLDBOOT_R  129
+#define C1_HOLDBOOT_R  130
+#define C1_R           131
+#define C1P1POR_R      132
+#define C1P1_R         133
+#define C2_R           134
+#define C3_R           135
+#define SYS_R          136
+#define VSW_R          137
+#define C1MS_R         138
+#define DDRCP_R                139
+#define DDRCAPB_R      140
+#define DDRPHYCAPB_R   141
+#define DDRCFG_R       142
+#define DDR_R          143
+
+#define STM32MP25_LAST_RESET   144
+
+#define RST_SCMI_C1_R          0
+#define RST_SCMI_C2_R          1
+#define RST_SCMI_C1_HOLDBOOT_R 2
+#define RST_SCMI_C2_HOLDBOOT_R 3
+#define RST_SCMI_FMC           4
+#define RST_SCMI_OSPI1         5
+#define RST_SCMI_OSPI1DLL      6
+#define RST_SCMI_OSPI2         7
+#define RST_SCMI_OSPI2DLL      8
+
+#endif /* _DT_BINDINGS_STM32MP25_RESET_H_ */
index 6e66a802b96a50bacc7503284fced6eee39161e7..668f199df9f04e1b670802002a1906ec162d06e7 100644 (file)
@@ -10,5 +10,9 @@
 #define ROCKCHIP_VOP2_EP_LVDS0 5
 #define ROCKCHIP_VOP2_EP_MIPI1 6
 #define ROCKCHIP_VOP2_EP_LVDS1 7
+#define ROCKCHIP_VOP2_EP_HDMI1 8
+#define ROCKCHIP_VOP2_EP_EDP1  9
+#define ROCKCHIP_VOP2_EP_DP0   10
+#define ROCKCHIP_VOP2_EP_DP1   11
 
 #endif /* __DT_BINDINGS_ROCKCHIP_VOP2_H */
index ff68dfb4eb7874a00d398bf7dfc2d242385c5620..90bd12feac010108def3f68756edf4e2d76c2e84 100644 (file)
                msix: msix@fbe00000 {
                        compatible = "al,alpine-msix";
                        reg = <0x0 0xfbe00000 0x0 0x100000>;
-                       interrupt-controller;
                        msi-controller;
                        al,msi-base-spi = <96>;
                        al,msi-num-spis = <64>;
index e899de681f4752d4077b55a0cd4f8858c6e23df0..5be0e8fd2633c20e2d87abc843b53fca437942be 100644 (file)
@@ -45,8 +45,8 @@
                num-chipselects = <1>;
                cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
 
-               tpmdev@0 {
-                       compatible = "tcg,tpm_tis-spi";
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                        spi-max-frequency = <33000000>;
                        reg = <0>;
                };
index a677c827e758fe2042fcf14a192832668e3ffbd0..5a8169bbda8792c76c1da960508c8a0c6bdd4b86 100644 (file)
@@ -80,8 +80,8 @@
                gpio-miso = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_HIGH>;
                num-chipselects = <1>;
 
-               tpmdev@0 {
-                       compatible = "tcg,tpm_tis-spi";
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                        spi-max-frequency = <33000000>;
                        reg = <0>;
                };
index 3f6010ef2b86f264fe88935a737b3ce9c60d762b..213023bc5aec4144751c9e7bc8e3e05c156386c8 100644 (file)
        status = "okay";
 
        tpm: tpm@2e {
-               compatible = "tcg,tpm-tis-i2c";
+               compatible = "nuvoton,npct75x", "tcg,tpm-tis-i2c";
                reg = <0x2e>;
        };
 };
index 530491ae5eb26060f68802cf3318914f7fb2d361..857cb26ed6d7e8acd13c5695daa9fb3b8699c3c1 100644 (file)
        i2c0: i2c-bus@40 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x40 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c1: i2c-bus@80 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x80 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c2: i2c-bus@c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0xc0 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c3: i2c-bus@100 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x100 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c4: i2c-bus@140 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x140 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c5: i2c-bus@180 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x180 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c6: i2c-bus@1c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x1c0 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c7: i2c-bus@300 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x300 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c8: i2c-bus@340 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x340 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c9: i2c-bus@380 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x380 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c10: i2c-bus@3c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x3c0 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c11: i2c-bus@400 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x400 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c12: i2c-bus@440 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x440 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
        i2c13: i2c-bus@480 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x480 0x40>;
                compatible = "aspeed,ast2400-i2c-bus";
index 04f98d1dbb97c84c318c7e6a133fbf4572237c47..e6f3cf3c721e574f8b9975254cdcc79e3ce3b725 100644 (file)
                                interrupts = <40>;
                                reg = <0x1e780200 0x0100>;
                                clocks = <&syscon ASPEED_CLK_APB>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                                bus-frequency = <12000000>;
                                pinctrl-names = "default";
        i2c0: i2c-bus@40 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x40 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c1: i2c-bus@80 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x80 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c2: i2c-bus@c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0xc0 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c3: i2c-bus@100 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x100 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c4: i2c-bus@140 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x140 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c5: i2c-bus@180 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x180 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c6: i2c-bus@1c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x1c0 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c7: i2c-bus@300 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x300 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c8: i2c-bus@340 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x340 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c9: i2c-bus@380 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x380 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c10: i2c-bus@3c0 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x3c0 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c11: i2c-bus@400 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x400 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c12: i2c-bus@440 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x440 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
        i2c13: i2c-bus@480 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
 
                reg = <0x480 0x40>;
                compatible = "aspeed,ast2500-i2c-bus";
index c4d1faade8be33d52c91f797f3fedaa0b22566a2..29f94696d8b189cba0113e7a65bbb25611358710 100644 (file)
                                reg = <0x1e780500 0x100>;
                                interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&syscon ASPEED_CLK_APB2>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                                bus-frequency = <12000000>;
                                pinctrl-names = "default";
                                reg = <0x1e780600 0x100>;
                                interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&syscon ASPEED_CLK_APB2>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                                bus-frequency = <12000000>;
                                pinctrl-names = "default";
        i2c0: i2c-bus@80 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x80 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c1: i2c-bus@100 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x100 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c2: i2c-bus@180 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x180 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c3: i2c-bus@200 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x200 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c4: i2c-bus@280 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x280 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c5: i2c-bus@300 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x300 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c6: i2c-bus@380 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x380 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c7: i2c-bus@400 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x400 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c8: i2c-bus@480 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x480 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c9: i2c-bus@500 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x500 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c10: i2c-bus@580 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x580 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c11: i2c-bus@600 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x600 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c12: i2c-bus@680 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x680 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c13: i2c-bus@700 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x700 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c14: i2c-bus@780 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x780 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
        i2c15: i2c-bus@800 {
                #address-cells = <1>;
                #size-cells = <0>;
-               #interrupt-cells = <1>;
                reg = <0x800 0x80>;
                compatible = "aspeed,ast2600-i2c-bus";
                clocks = <&syscon ASPEED_CLK_APB2>;
index 31590d3186a2e099e44c663c46a87975b60aae27..00e5887c926f181d57bebe6b0b781ad2f2e8a514 100644 (file)
@@ -35,8 +35,8 @@
                gpio-mosi = <&gpio0 ASPEED_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
                gpio-miso = <&gpio0 ASPEED_GPIO(X, 5) GPIO_ACTIVE_HIGH>;
 
-               tpmdev@0 {
-                       compatible = "tcg,tpm_tis-spi";
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                        spi-max-frequency = <33000000>;
                        reg = <0>;
                };
index f9f79ed825181b7e71b12f87d7ba21ade0fd6d4d..07ca0d993c9fdb27ef50e3c450f3472ebe67f858 100644 (file)
                        #gpio-cells = <2>;
                        gpio-controller;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupt-parent = <&mailbox>;
                        interrupts = <0>;
                };
                        gpio-controller;
                        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                };
 
                i2c1: i2c@1800b000 {
                        gpio-controller;
 
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-ranges = <&pinctrl 0 42 1>,
                                        <&pinctrl 1 44 3>,
index 788a6806191a33a04aa326a0645d5af06365571d..75545b10ef2fa69570f42422e15a2341d4cfaf92 100644 (file)
                        gpio-controller;
                        ngpios = <4>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index 9d20ba3b1ffb13d4983f28e66de7ae140af528be..6a4482c9316741d89eb67371ac13a3670783b8fc 100644 (file)
                        gpio-controller;
                        ngpios = <32>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-ranges = <&pinctrl 0 0 32>;
                };
                        gpio-controller;
                        ngpios = <4>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index 98817a6675b9dda10fa138a054d73cc78539d9df..d233a191c139362d36e581ed7b9222b0ebee3189 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "bcm2835-rpi.dtsi"
 
+#include <dt-bindings/power/raspberrypi-power.h>
 #include <dt-bindings/reset/raspberrypi,firmware-reset.h>
 
 / {
@@ -76,3 +77,7 @@
 &vchiq {
        interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
 };
+
+&xhci {
+       power-domains = <&power RPI_POWER_DOMAIN_USB>;
+};
index 4a379a14966d8da3252bb5726d876a8828a04688..22c7f1561344ed57978b4d91d6cdff6a6a84e9ff 100644 (file)
                        };
                };
 
+               xhci: usb@7e9c0000 {
+                       compatible = "brcm,bcm2711-xhci", "brcm,xhci-brcm-v2";
+                       reg = <0x0 0x7e9c0000 0x100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+                       /* DWC2 and this IP block share the same USB PHY,
+                        * enabling both at the same time results in lockups.
+                        * So keep this node disabled and let the bootloader
+                        * decide which interface should be enabled.
+                        */
+                       status = "disabled";
+               };
+
                v3d: gpu@7ec00000 {
                        compatible = "brcm,2711-v3d";
                        reg = <0x0 0x7ec00000 0x4000>,
index 93281c47c9ba9ff02d8f39a297cb2d6d902e026b..4ef02283612bb416ed1223a8d6afb54e551fc0a7 100644 (file)
                        interrupt-names = "nand";
                };
 
+               serial@4400 {
+                       compatible = "brcm,bcm63138-hs-uart", "brcm,bcmbca-hs-uart";
+                       reg = <0x4400 0x1e0>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                bootlut: bootlut@8000 {
                        compatible = "brcm,bcm63138-bootlut";
                        reg = <0x8000 0x50>;
index 4d70f6afd13ab5ee5df7ea621b56f81f4e642d41..6d5e69035f94dcaa3f323c833c1edd064d4f7dfd 100644 (file)
@@ -60,6 +60,8 @@
                         * We have slots (IDSEL) 1 and 2 with one assigned IRQ
                         * each handling all IRQs.
                         */
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0xf800 0 0 7>;
                        interrupt-map =
                        /* IDSEL 1 */
                        <0x0800 0 0 1 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 11 */
index 9ec0169bacf8c2098814ec6c1399e41c910df464..5f4c849915db71390ab3050b7277b7893b075307 100644 (file)
@@ -89,6 +89,8 @@
                         * The slots have Ethernet, Ethernet, NEC and MPCI.
                         * The IDSELs are 11, 12, 13, 14.
                         */
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0xf800 0 0 7>;
                        interrupt-map =
                        /* IDSEL 11 - Ethernet A */
                        <0x5800 0 0 1 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 11 is irq 4 */
index 90fd51b36e7da245b7402f0b8096f2ece77bf9fd..2c89db34c8d889839fcf6a23ad536ffe6ebc17fe 100644 (file)
                                #address-cells = <1>;
                                #size-cells = <0>;
 
+                               /*
+                                * PHY 0..4 are internal to the MV88E6060 switch but appear
+                                * as independent devices.
+                                */
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+                               phy2: ethernet-phy@2 {
+                                       reg = <2>;
+                               };
+                               phy3: ethernet-phy@3 {
+                                       reg = <3>;
+                               };
+
+                               /* Altima AMI101L used by the WAN port */
                                phy9: ethernet-phy@9 {
                                        reg = <9>;
                                };
                                                port@0 {
                                                        reg = <0>;
                                                        label = "lan1";
+                                                       phy-handle = <&phy0>;
                                                };
 
                                                port@1 {
                                                        reg = <1>;
                                                        label = "lan2";
+                                                       phy-handle = <&phy1>;
                                                };
 
                                                port@2 {
                                                        reg = <2>;
                                                        label = "lan3";
+                                                       phy-handle = <&phy2>;
                                                };
 
                                                port@3 {
                                                        reg = <3>;
                                                        label = "lan4";
+                                                       phy-handle = <&phy3>;
                                                };
 
                                                port@5 {
index 4c1d140f40f870740cbff91a33642f7cb1785014..35be14150f4167be5f1361a5a6a4265a49d5c78c 100644 (file)
                        status = "disabled";
                };
 
-               nand0: nand@ff900000 {
+               nand0: nand-controller@ff900000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        compatible = "altr,socfpga-denali-nand";
index f36063c57c7f283f75d674b57e4a6bc59bc8bf3c..6b6e77596ffa86e6a31286f16c15d7d1298a0368 100644 (file)
                        status = "disabled";
                };
 
-               nand: nand@ffb90000 {
+               nand: nand-controller@ffb90000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "altr,socfpga-denali-nand";
index 11ccdc6c2dc646c7d06cfb9ceca162e2ab5660c2..0434f1c7b66529f701d337a33a459500c7d40556 100644 (file)
@@ -17,8 +17,6 @@
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <3>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index c48385702a854d69a3cf422912c6e9d4536c1cdb..7342f5942b0d09c62ac13bccdb856f77002d9685 100644 (file)
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index c7f5fa0ba0f28aeba7d2d64fc0dd8676422b741e..d37a982e857192a15cdd683cd8d66b13055acc50 100644 (file)
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index 3dd99c7c95e0ce5cc792d6b5d17185f4508435a2..9e4db7407f1a3efb81670901f9e9e4d2ba864f0c 100644 (file)
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index 2564671fc1c67f719e65b56182bf4ceb59015a8e..ce0d6514eeb57131d0fc6982e51ff3b1bd67e230 100644 (file)
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index e0630b0eed036d35dd959d28ce1261fb3dd2197f..65f390bf897534c89d558bda0bd2307ffca5bab1 100644 (file)
                spi-max-frequency = <100000000>;
                m25p,fast-read;
 
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
                spi-max-frequency = <100000000>;
                m25p,fast-read;
 
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <4>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index b459a670f6158c4306b4c03ca5ab7afc7d69beef..f23f6b3fc8f3ba5a0df528c3daae191078d6fddd 100644 (file)
@@ -95,7 +95,7 @@
                        gpio-fan {
                                compatible = "gpio-fan";
                                gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
-                               gpio-fan,speed-map = <0 0 3000 1>;
+                               gpio-fan,speed-map = <0 0>, <3000 1>;
                                pinctrl-0 = <&fan_pins>;
                                pinctrl-names = "default";
                        };
                };
        };
 
-       switch: switch@10 {
+       switch: ethernet-switch@10 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <0x10>;
                interrupt-controller;
                #interrupt-cells = <2>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "lan0";
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan1";
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan2";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan3";
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                ethernet = <&eth1>;
                                phy-mode = "rgmii-id";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switchphy0: switchphy@0 {
+                       switchphy0: ethernet-phy@0 {
                                reg = <0>;
                                interrupt-parent = <&switch>;
                                interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       switchphy1: switchphy@1 {
+                       switchphy1: ethernet-phy@1 {
                                reg = <1>;
                                interrupt-parent = <&switch>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       switchphy2: switchphy@2 {
+                       switchphy2: ethernet-phy@2 {
                                reg = <2>;
                                interrupt-parent = <&switch>;
                                interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       switchphy3: switchphy@3 {
+                       switchphy3: ethernet-phy@3 {
                                reg = <3>;
                                interrupt-parent = <&switch>;
                                interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
index 8dd242e668e652ccc5a7dbf4ff6216f78fbf15ef..6ec3dd3337f4234c0c0f9932c25fb56385fee018 100644 (file)
@@ -25,9 +25,9 @@
 
        gpio-fan {
                gpio-fan,speed-map =
-                       <   0 3
-                         950 2
-                        1400 1
-                        1800 0>;
+                       <   0 3>,
+                       < 950 2>,
+                       <1400 1>,
+                       <1800 0>;
        };
 };
index 370ca9c432479f40cb16f2e6e178a51c428c2940..3011578a31244e4449c7af4f85664dde9f9ff288 100644 (file)
 
        gpio-fan {
                gpio-fan,speed-map =
-                       <   0 3
-                         800 2
-                         1050 1
-                         1300 0>;
+                       <   0 3>,
+                       < 800 2>,
+                       <1050 1>,
+                       <1300 0>;
        };
 };
 
index b07d11d1f124957ab0b6b843a9e76809d15ceee6..02599a3e9816a365cf01b94e1913bff2345e8b61 100644 (file)
                         &gpio2  0 GPIO_ACTIVE_HIGH
                         &gpio2  1 GPIO_ACTIVE_HIGH>;
                alarm-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      1000 1
-                                      1150 2
-                                      1350 4
-                                      1500 3
-                                      1650 5
-                                      1750 6
-                                      1900 7 >;
+               gpio-fan,speed-map = <   0 0>,
+                                    <1000 1>,
+                                    <1150 2>,
+                                    <1350 4>,
+                                    <1500 3>,
+                                    <1650 5>,
+                                    <1750 6>,
+                                    <1900 7>;
        };
 
        gpio-leds {
index f4c4b213ef4ed6cdf5243031146603245c1e3e20..5baf83e5253d8c2a903eb22034e56e6b88bc1f78 100644 (file)
        pinctrl-0 = <&mdio_pins>;
        status = "okay";
 
-       switch@0 {
+       ethernet-switch@0 {
                compatible = "marvell,mv88e6190";
-               #address-cells = <1>;
                #interrupt-cells = <2>;
                interrupt-controller;
                interrupt-parent = <&gpio1>;
                interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-0 = <&switch_interrupt_pins>;
                pinctrl-names = "default";
-               #size-cells = <0>;
                reg = <0>;
 
                mdio {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1: switch0phy1@1 {
+                       switch0phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy2: switch0phy2@2 {
+                       switch0phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy3: switch0phy3@3 {
+                       switch0phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy4: switch0phy4@4 {
+                       switch0phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy5: switch0phy5@5 {
+                       switch0phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy6: switch0phy6@6 {
+                       switch0phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy7: switch0phy7@7 {
+                       switch0phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy8: switch0phy8@8 {
+                       switch0phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                        };
                };
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                ethernet = <&eth0>;
                                phy-mode = "rgmii";
                                reg = <0>;
                                };
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                label = "lan1";
                                phy-handle = <&switch0phy1>;
                                reg = <1>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                label = "lan2";
                                phy-handle = <&switch0phy2>;
                                reg = <2>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                label = "lan3";
                                phy-handle = <&switch0phy3>;
                                reg = <3>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                label = "lan4";
                                phy-handle = <&switch0phy4>;
                                reg = <4>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                label = "lan5";
                                phy-handle = <&switch0phy5>;
                                reg = <5>;
                        };
 
-                       port@6 {
+                       ethernet-port@6 {
                                label = "lan6";
                                phy-handle = <&switch0phy6>;
                                reg = <6>;
                        };
 
-                       port@7 {
+                       ethernet-port@7 {
                                label = "lan7";
                                phy-handle = <&switch0phy7>;
                                reg = <7>;
                        };
 
-                       port@8 {
+                       ethernet-port@8 {
                                label = "lan8";
                                phy-handle = <&switch0phy8>;
                                reg = <8>;
                        };
 
-                       port@9 {
+                       ethernet-port@9 {
                                /* 88X3310P external phy */
                                label = "lan9";
                                phy-handle = <&phy1>;
                                reg = <9>;
                        };
 
-                       port@a {
+                       ethernet-port@a {
                                /* 88X3310P external phy */
                                label = "lan10";
                                phy-handle = <&phy2>;
index 1990f7d0cc79a72c41796756d53af9142129f972..1707d1b015452d26c138ac198f1dc01982cea779 100644 (file)
@@ -7,66 +7,66 @@
 };
 
 &mdio {
-       switch0: switch0@4 {
+       switch0: ethernet-switch@4 {
                compatible = "marvell,mv88e6190";
                reg = <4>;
                pinctrl-names = "default";
                pinctrl-0 = <&cf_gtr_switch_reset_pins>;
                reset-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan8";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan7";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan6";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan5";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "lan4";
                                phy-handle = <&switch0phy4>;
                        };
 
-                       port@6 {
+                       ethernet-port@6 {
                                reg = <6>;
                                label = "lan3";
                                phy-handle = <&switch0phy5>;
                        };
 
-                       port@7 {
+                       ethernet-port@7 {
                                reg = <7>;
                                label = "lan2";
                                phy-handle = <&switch0phy6>;
                        };
 
-                       port@8 {
+                       ethernet-port@8 {
                                reg = <8>;
                                label = "lan1";
                                phy-handle = <&switch0phy7>;
                        };
 
-                       port@10 {
+                       ethernet-port@10 {
                                reg = <10>;
                                phy-mode = "2500base-x";
 
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@1 {
+                       switch0phy0: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy1: switch0phy1@2 {
+                       switch0phy1: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy2: switch0phy2@3 {
+                       switch0phy2: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy3: switch0phy3@4 {
+                       switch0phy3: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy4: switch0phy4@5 {
+                       switch0phy4: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy5: switch0phy5@6 {
+                       switch0phy5: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy6: switch0phy6@7 {
+                       switch0phy6: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy7: switch0phy7@8 {
+                       switch0phy7: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
index b795ad573891ea0e096822e828e18db403a8b02c..a7678a784c180145cd818e7782253d43179fefb3 100644 (file)
 };
 
 &mdio {
-       switch0: switch0@4 {
+       switch0: ethernet-switch@4 {
                compatible = "marvell,mv88e6085";
                reg = <4>;
                pinctrl-names = "default";
                pinctrl-0 = <&cf_gtr_switch_reset_pins>;
                reset-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan2";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan1";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan4";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan3";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                phy-mode = "2500base-x";
                                ethernet = <&eth1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch0phy3: switch0phy3@14 {
+                       switch0phy3: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
index fc8216fd9f60092603bf2ef612b12cb683468c8e..4116ed60f70923b0489f640f28cfdb4b0c983ac1 100644 (file)
 &mdio {
        status = "okay";
 
-       switch@0 {
+       ethernet-switch@0 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "lan4";
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan3";
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan2";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "wan";
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                phy-mode = "sgmii";
                                ethernet = <&eth2>;
index ea91ff964d94ec3dbdfc4088b7ca96dcbbf60010..6caa5c50175a2266dc356196264cea39c8d3df33 100644 (file)
                        gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>,
                                <&gpio1 17 GPIO_ACTIVE_HIGH>,
                                <&gpio1 16 GPIO_ACTIVE_HIGH>;
-                       gpio-fan,speed-map = <   0 0
-                                             1500 1
-                                             2500 2
-                                             3000 3
-                                             3400 4
-                                             3700 5
-                                             3900 6
-                                             4000 7>;
+                       gpio-fan,speed-map = <   0 0>,
+                                            <1500 1>,
+                                            <2500 2>,
+                                            <3000 3>,
+                                            <3400 4>,
+                                            <3700 5>,
+                                            <3900 6>,
+                                            <4000 7>;
                        #cooling-cells = <2>;
                };
 
index 2d8d319bec83000f1561648c1f3ec47d5b172d2f..7b755bb4e4e7519dca60e87a734571a049b604bd 100644 (file)
        };
 
        /* Switch MV88E6176 at address 0x10 */
-       switch@10 {
+       ethernet-switch@10 {
                pinctrl-names = "default";
                pinctrl-0 = <&swint_pins>;
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                dsa,member = <0 0>;
                reg = <0x10>;
                interrupt-parent = <&gpio1>;
                interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       ports@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "lan0";
                        };
 
-                       ports@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan1";
                        };
 
-                       ports@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan2";
                        };
 
-                       ports@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan3";
                        };
 
-                       ports@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan4";
                        };
 
-                       ports@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                ethernet = <&eth1>;
                                phy-mode = "rgmii-id";
                                };
                        };
 
-                       ports@6 {
+                       ethernet-port@6 {
                                reg = <6>;
                                ethernet = <&eth0>;
                                phy-mode = "rgmii-id";
index 32c569df142ffc58afd064c4321865765f95fdc3..3290ccad2374575d86f522c08e75826b40c32918 100644 (file)
 &mdio {
        status = "okay";
 
-       switch@4 {
+       ethernet-switch@4 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <4>;
                pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>;
                pinctrl-names = "default";
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "lan5";
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan4";
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan3";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan2";
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan1";
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                ethernet = <&eth1>;
                                phy-mode = "1000base-x";
                                };
                        };
 
-                       port@6 {
+                       ethernet-port@6 {
                                /* 88E1512 external phy */
                                reg = <6>;
                                label = "lan6";
index e2ba50520b6b0ba89e209886e29ea5aa31ddbb83..1de0a172aa5f18cab18503ee6c6503d78be3f235 100644 (file)
                gpio-fan {
                        compatible = "gpio-fan";
                        gpios = <&expander1 3 GPIO_ACTIVE_HIGH>;
-                       gpio-fan,speed-map = <   0 0
-                                             3000 1>;
+                       gpio-fan,speed-map = <   0 0>,
+                                            <3000 1>;
                };
        };
 
index 7a0614fd0c93ad6e4a8e78a89379ebe2c732c940..ea859f7ea04221a34841acf9dd41c15fc83d9430 100644 (file)
 &mdio {
        status = "okay";
 
-       switch@0 {
+       ethernet-switch@0 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "lan4";
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan3";
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan2";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "internet";
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                phy-mode = "rgmii-id";
                                ethernet = <&eth0>;
index eb917462b219b996ba7ca3a7680a8f36347d225a..0738eb679fcd7af8483b6a486237eb0f115e0396 100644 (file)
@@ -38,9 +38,9 @@
                pinctrl-names = "default";
                gpios = <&gpio1 14 GPIO_ACTIVE_HIGH
                         &gpio1 13 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <0    0
-                                     3000 1
-                                     6000 2>;
+               gpio-fan,speed-map = <0    0>,
+                                    <3000 1>,
+                                    <6000 2>;
        };
 
        gpio_poweroff {
index dffb9f84e67c50c63ba5268a9975c62b93e75157..c841eb8e7fb1d0404301f4f8b21899fb60b77a25 100644 (file)
@@ -65,6 +65,7 @@
                        gpio2: gpio-expander@20 {
                                #gpio-cells = <2>;
                                #interrupt-cells = <2>;
+                               interrupt-controller;
                                compatible = "semtech,sx1505q";
                                reg = <0x20>;
 
@@ -79,6 +80,7 @@
                        gpio3: gpio-expander@21 {
                                #gpio-cells = <2>;
                                #interrupt-cells = <2>;
+                               interrupt-controller;
                                compatible = "semtech,sx1505q";
                                reg = <0x21>;
 
index 377b6e970259fdf57ba36899bf6add14f9ee60fe..dfac2045a1ebbbd2a58e1a58ddd5bc36f5f90b8e 100644 (file)
                gpios = <&gpio0 17 GPIO_ACTIVE_LOW
                         &gpio0 16 GPIO_ACTIVE_LOW>;
 
-               gpio-fan,speed-map = <0 3
-                               1500 2
-                               3250 1
-                               5000 0>;
+               gpio-fan,speed-map =
+                               <   0 3>,
+                               <1500 2>,
+                               <3250 1>,
+                               <5000 0>;
 
                alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
        };
index c6024b569423ab1a8d6f64eb012e4e21738f8620..0425df8cb91cc1483b1edcf68de9e8609faa6c21 100644 (file)
                gpios = <&gpio1 16 GPIO_ACTIVE_LOW
                         &gpio1 15 GPIO_ACTIVE_LOW>;
 
-               gpio-fan,speed-map = <0 3
-                               1500 2
-                               3250 1
-                               5000 0>;
+               gpio-fan,speed-map =
+                               <   0 3>,
+                               <1500 2>,
+                               <3250 1>,
+                               <5000 0>;
 
                alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
        };
index 88b70ba1c8feec67b670335c60235aa21342687e..f80af24b9e9008a59460276642627553b1cf46a8 100644 (file)
                pinctrl-names = "default";
                gpios = <&gpio0 19 GPIO_ACTIVE_LOW
                         &gpio0 18 GPIO_ACTIVE_LOW>;
-               gpio-fan,speed-map = <0    3
-                                     1500 2
-                                     3250 1
-                                     5000 0>;
+               gpio-fan,speed-map =
+                               <0    3>,
+                               <1500 2>,
+                               <3250 1>,
+                               <5000 0>;
                alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
        };
 
index c0a087e774084869e239d00a220778076b1a320c..044958bc55da16864495414eb88816c386d3a789 100644 (file)
                         &gpio1  1 GPIO_ACTIVE_LOW
                         &gpio0 23 GPIO_ACTIVE_LOW>;
                gpio-fan,speed-map =
-                       <   0  0
-                        1500 15
-                        1700 14
-                        1800 13
-                        2100 12
-                        3100 11
-                        3300 10
-                        4300  9
-                        5500  8>;
+                       <   0  0>,
+                       <1500 15>,
+                       <1700 14>,
+                       <1800 13>,
+                       <2100 12>,
+                       <3100 11>,
+                       <3300 10>,
+                       <4300  9>,
+                       <5500  8>;
                alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
        };
 
index 5b9fa14b642861f89d38a3602a5eb71dddb6ba55..3fbe008f914117152ba7dc33f9263a6641fbebb0 100644 (file)
                         &gpio1  1 GPIO_ACTIVE_LOW
                         &gpio0 23 GPIO_ACTIVE_LOW>;
                gpio-fan,speed-map =
-                       <   0  0
-                        3000 15
-                        3180 14
-                        4140 13
-                        4570 12
-                        6760 11
-                        7140 10
-                        7980  9
-                        9200  8>;
+                       <   0  0>,
+                       <3000 15>,
+                       <3180 14>,
+                       <4140 13>,
+                       <4570 12>,
+                       <6760 11>,
+                       <7140 10>,
+                       <7980  9>,
+                       <9200  8>;
                alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
        };
 
index 9b6666020cddfe0196f5fe4b8ad77aa0cec03cb9..20964eb48fd75a51640a30806e6a0c24abbda3c4 100644 (file)
                gpios = <&gpio1 0 GPIO_ACTIVE_HIGH
                         &gpio1 1 GPIO_ACTIVE_HIGH
                         &gpio1 2 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2200 1
-                                      2500 2
-                                      3000 4
-                                      3300 3
-                                      3700 5
-                                      3800 6
-                                      4200 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2200 1>,
+                               <2500 2>,
+                               <3000 4>,
+                               <3300 3>,
+                               <3700 5>,
+                               <3800 6>,
+                               <4200 7>;
        };
 
        gpio-fan-150-15-18 {
                         &gpio0 16 GPIO_ACTIVE_HIGH
                         &gpio0 17 GPIO_ACTIVE_HIGH>;
                alarm-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2200 1
-                                      2500 2
-                                      3000 4
-                                      3300 3
-                                      3700 5
-                                      3800 6
-                                      4200 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2200 1>,
+                               <2500 2>,
+                               <3000 4>,
+                               <3300 3>,
+                               <3700 5>,
+                               <3800 6>,
+                               <4200 7>;
        };
 
        gpio-fan-100-32-35 {
                         &gpio1 1 GPIO_ACTIVE_HIGH
                         &gpio1 2 GPIO_ACTIVE_HIGH>;
                alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2500 1
-                                      3100 2
-                                      3800 3
-                                      4600 4
-                                      4800 5
-                                      4900 6
-                                      5000 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2500 1>,
+                               <3100 2>,
+                               <3800 3>,
+                               <4600 4>,
+                               <4800 5>,
+                               <4900 6>,
+                               <5000 7>;
        };
 
        gpio-fan-100-15-18 {
                         &gpio0 16 GPIO_ACTIVE_HIGH
                         &gpio0 17 GPIO_ACTIVE_HIGH>;
                alarm-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2500 1
-                                      3100 2
-                                      3800 3
-                                      4600 4
-                                      4800 5
-                                      4900 6
-                                      5000 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2500 1>,
+                               <3100 2>,
+                               <3800 3>,
+                               <4600 4>,
+                               <4800 5>,
+                               <4900 6>,
+                               <5000 7>;
        };
 
        gpio-fan-100-15-35-1 {
                         &gpio0 16 GPIO_ACTIVE_HIGH
                         &gpio0 17 GPIO_ACTIVE_HIGH>;
                alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2500 1
-                                      3100 2
-                                      3800 3
-                                      4600 4
-                                      4800 5
-                                      4900 6
-                                      5000 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2500 1>,
+                               <3100 2>,
+                               <3800 3>,
+                               <4600 4>,
+                               <4800 5>,
+                               <4900 6>,
+                               <5000 7>;
        };
 
        gpio-fan-100-15-35-3 {
                alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH
                               &gpio1 12 GPIO_ACTIVE_HIGH
                               &gpio1 13 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <    0 0
-                                      2500 1
-                                      3100 2
-                                      3800 3
-                                      4600 4
-                                      4800 5
-                                      4900 6
-                                      5000 7 >;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <2500 1>,
+                               <3100 2>,
+                               <3800 3>,
+                               <4600 4>,
+                               <4800 5>,
+                               <4900 6>,
+                               <5000 7>;
        };
 
        gpio-leds-alarm-12 {
index e172029a0c4de6b4c16f014f57fe347ee57b281d..a260c42dbda33b2d8be2649c7eae698025f0bf6c 100644 (file)
                pinctrl-names = "default";
 
                gpio-fan,speed-map =
-                       <0              3
-                       1500    2
-                       3250    1
-                       5000    0>;
+                       <   0 3>,
+                       <1500 2>,
+                       <3250 1>,
+                       <5000 0>;
        };
 };
 
index 83372c1f291bb293f5b98773d85bf47a5383bebe..c6fbdd29019f39867c91ff4908bfed407c0b6a68 100644 (file)
 
        ethernet-phy@0 {
                reg = <0x0>;
+               interrupt-parent = <&pioB>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
                                 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB5 periph A */
                                 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
                                 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
+                                AT91_PIOB 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE /* PB8 IRQ GPIO */
                                 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
                                 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
                };
index 5cd593028aff7c6b27f6a413cca347c299941599..f3cbb675cea4aee74b3e004dd5f2c80d4ddea707 100644 (file)
 
        ethernet-phy@0 {
                reg = <0x0>;
+               interrupt-parent = <&pioB>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
                                 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB5 periph A */
                                 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
                                 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
+                                AT91_PIOB 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE /* PB8 IRQ GPIO */
                                 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
                                 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
                };
index d0a6dbd377dfa133f330ac5e3f5385f9754bf708..f3ffb8f01d8ac3bec9aca851282dde4dea0514fa 100644 (file)
@@ -54,7 +54,6 @@
 
                sdmmc0: sdio-host@a0000000 {
                        bus-width = <8>;
-                       mmc-ddr-3_3v;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_sdmmc0_default>;
                        status = "okay";
index e055b9e2fe34463b2dd7a7f80abdbe2ce14acb4f..15239834d886edbf9e732ac461a92ac9eea42ae5 100644 (file)
 
 &sdmmc0 {
        bus-width = <4>;
-       mmc-ddr-3_3v;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sdmmc0_default>;
        status = "okay";
index fd671c7a1e5d64c6eafb0a7434c7d14b19f4d1b6..6e1f0f164cb4f511d19774a8c39a9a3090d85b9d 100644 (file)
                                interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
                                             <3 IRQ_TYPE_LEVEL_HIGH>,
                                             <4 IRQ_TYPE_LEVEL_HIGH>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                        };
 
                                gpio-controller;
                                #gpio-cells = <2>;
                                interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                        };
 
index 16b374e6482f5194d3fdf0d5a8c7a6bb5f2ca9e8..8c1d5c9fa4831d457a8bedc88132623630ab53e2 100644 (file)
        tegra_ac97: ac97@70002000 {
                status = "okay";
                nvidia,codec-reset-gpio =
-                       <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
+                       <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
                nvidia,codec-sync-gpio =
                        <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
        };
index 1640763fd4af2216c225b95e60e954afd5255fb5..ff0d684622f74d13eb1b4b2c7178c38e93ab4293 100644 (file)
                        compatible = "st,stmpe811";
                        reg = <0x41>;
                        irq-gpio = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-                       interrupt-controller;
                        id = <0>;
                        blocks = <0x5>;
                        irq-trigger = <0x1>;
index 3b6fad273cabf17a6ddff7ede1d72de13079ed1f..d38f1dd38a9068371c25ddf82f4c284a555ffb03 100644 (file)
                        compatible = "st,stmpe811";
                        reg = <0x41>;
                        irq-gpio = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-                       interrupt-controller;
                        id = <0>;
                        blocks = <0x5>;
                        irq-trigger = <0x1>;
index 4eb526fe9c55888d6a595d68d3a95616bb913404..81c8a5fd92ccea33b3673d61302d39397e8fa72f 100644 (file)
                        compatible = "st,stmpe811";
                        reg = <0x41>;
                        irq-gpio = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-                       interrupt-controller;
                        id = <0>;
                        blocks = <0x5>;
                        irq-trigger = <0x1>;
index 5833fb6f15d88acc096d7acb71fe518153adcd8b..2c817c4a4c68f8ec9e100db747762067c7a4b483 100644 (file)
@@ -65,7 +65,7 @@
        pinctrl-0 = <&pinctrl_weim>;
        status = "okay";
 
-       nor: nor@0,0 {
+       nor: flash@0,0 {
                compatible = "cfi-flash";
                reg = <0 0x00000000 0x02000000>;
                bank-width = <4>;
index 1f11e9542a72de5e5425e6b7d8c24d3552f0eea7..e66eef87a7a4fdfe33c8249946400b5fd7075f8a 100644 (file)
@@ -45,7 +45,7 @@
        pinctrl-0 = <&pinctrl_weim>;
        status = "okay";
 
-       nor: nor@0,0 {
+       nor: flash@0,0 {
                compatible = "cfi-flash";
                reg = <0 0x00000000 0x02000000>;
                bank-width = <2>;
index e312f1e74e2fe63eae27d87552c2ea0903464632..1ac10965fdfdd5284cfa860f168fccdc57c64433 100644 (file)
@@ -68,7 +68,7 @@
                interrupt-parent = <&aitc>;
                ranges;
 
-               aipi@200000 {
+               bus@200000 {
                        compatible = "fsl,aipi-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               aipi@210000 {
+               bus@210000 {
                        compatible = "fsl,aipi-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        status = "disabled";
                };
 
-               esram: esram@300000 {
+               esram: sram@300000 {
                        compatible = "mmio-sram";
                        reg = <0x00300000 0x20000>;
+                       ranges = <0 0x00300000 0x20000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                };
        };
 };
index 0703f62d10d1cb1d3b0d262e0539523410d3f915..93a6e4e680b45133885a7c04693ae2e49dd1db85 100644 (file)
@@ -27,7 +27,7 @@
        pinctrl-0 = <&pinctrl_i2c1>;
        status = "okay";
 
-       pcf8563@51 {
+       rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
        };
index fc8a502fc957f0d68dc5a797691c4327670a2d8f..6cddb2cc36fe2aa4a07cad18c0fc9f2014314c1f 100644 (file)
@@ -16,7 +16,7 @@
                bus-width = <18>;
                display-timings {
                        native-mode = <&qvga_timings>;
-                       qvga_timings: 320x240 {
+                       qvga_timings: timing0 {
                                clock-frequency = <6500000>;
                                hactive = <320>;
                                vactive = <240>;
index 80a7f96de4c6ac70be65308808f119e0de185c0a..64b2ffac463b2a06da5aac3535b10517df937ab8 100644 (file)
@@ -16,7 +16,7 @@
                bus-width = <18>;
                display-timings {
                        native-mode = <&dvi_svga_timings>;
-                       dvi_svga_timings: 800x600 {
+                       dvi_svga_timings: timing0 {
                                clock-frequency = <40000000>;
                                hactive = <800>;
                                vactive = <600>;
index 24027a1fb46d11e12c65b8c5307a3e3563943d8e..fb074bfdaa8dc207ebc88c14388a8ca09091b5b5 100644 (file)
@@ -16,7 +16,7 @@
                bus-width = <18>;
                display-timings {
                        native-mode = <&dvi_vga_timings>;
-                       dvi_vga_timings: 640x480 {
+                       dvi_vga_timings: timing0 {
                                clock-frequency = <31250000>;
                                hactive = <640>;
                                vactive = <480>;
index 04f4b127a1725748f6914398f74b8afae60848df..dd176fb54e58595b34a8cd2c35769f341729895a 100644 (file)
@@ -68,7 +68,7 @@
                bus-width = <18>;
                display-timings {
                        native-mode = <&wvga_timings>;
-                       wvga_timings: 640x480 {
+                       wvga_timings: timing0 {
                                hactive = <640>;
                                vactive = <480>;
                                hback-porch = <45>;
        codec: sgtl5000@a {
                compatible = "fsl,sgtl5000";
                reg = <0x0a>;
+               #sound-dai-cells = <0>;
                clocks = <&clks 129>;
                VDDA-supply = <&reg_2p5v>;
                VDDIO-supply = <&reg_3p3v>;
index 534c70b8d79df50564e4450db9890541a85a16a4..9cfff2151b7edc9fc5eb6dc390dc35286aed332c 100644 (file)
                };
        };
 
+       usbphy0: usb-phy0 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+       };
+
+       usbphy1: usb-phy1 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+       };
+
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                                compatible = "fsl,imx25-i2c", "fsl,imx21-i2c";
                                reg = <0x43f80000 0x4000>;
                                clocks = <&clks 48>;
-                               clock-names = "";
+                               clock-names = "ipg";
                                interrupts = <3>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx25-i2c", "fsl,imx21-i2c";
                                reg = <0x43f84000 0x4000>;
                                clocks = <&clks 48>;
-                               clock-names = "";
+                               clock-names = "ipg";
                                interrupts = <10>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx25-i2c", "fsl,imx21-i2c";
                                reg = <0x43f98000 0x4000>;
                                clocks = <&clks 48>;
-                               clock-names = "";
+                               clock-names = "ipg";
                                interrupts = <4>;
                                status = "disabled";
                        };
                        };
 
                        kpp: kpp@43fa8000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                compatible = "fsl,imx25-kpp", "fsl,imx21-kpp";
                                reg = <0x43fa8000 0x4000>;
                                clocks = <&clks 102>;
-                               clock-names = "";
                                interrupts = <24>;
                                status = "disabled";
                        };
                        };
 
                        iim: efuse@53ff0000 {
-                               compatible = "fsl,imx25-iim", "fsl,imx27-iim";
+                               compatible = "fsl,imx25-iim";
                                reg = <0x53ff0000 0x4000>;
                                interrupts = <19>;
                                clocks = <&clks 99>;
                        #size-cells = <1>;
                };
 
-               emi@80000000 {
+               bus@80000000 {
                        compatible = "fsl,emi-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
        };
-
-       usbphy {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               usbphy0: usb-phy@0 {
-                       reg = <0>;
-                       compatible = "usb-nop-xceiv";
-                       #phy-cells = <0>;
-               };
-
-               usbphy1: usb-phy@1 {
-                       reg = <1>;
-                       compatible = "usb-nop-xceiv";
-                       #phy-cells = <0>;
-               };
-       };
 };
index a21f1f7c24b88df673afb5344135b560d28a2a05..849306cb4532dbdeb5302ee1c66256247eda645f 100644 (file)
@@ -16,7 +16,7 @@
                fsl,pcr = <0xfae80083>; /* non-standard but required */
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 800x480 {
+                       timing0: timing0 {
                                clock-frequency = <33000033>;
                                hactive = <800>;
                                vactive = <480>;
@@ -47,7 +47,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_leds>;
 
-               user {
+               led-user {
                        label = "Heartbeat";
                        gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
index 74110bbcd9d4f2ea217a77ece024a5eb76578f31..c7e92358487826874e74d819af17764311016d4a 100644 (file)
@@ -33,7 +33,7 @@
        pinctrl-0 = <&pinctrl_i2c1>;
        status = "okay";
 
-       pcf8563@51 {
+       rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
        };
@@ -90,7 +90,7 @@
 &weim {
        status = "okay";
 
-       nor: nor@0,0 {
+       nor: flash@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "cfi-flash";
index 145e459625b32d960220173d279fd6ff88212925..d78793601306cff9f353fa8814a645e5305dd4c4 100644 (file)
@@ -16,7 +16,7 @@
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 320x240 {
+                       timing0: timing0 {
                                clock-frequency = <6500000>;
                                hactive = <320>;
                                vactive = <240>;
index 35123b7cb6b3ed87e72679e8dcdfd4dde532e9ac..21d436972aa47c57f50db2636b23b45b41c02f05 100644 (file)
                reg = <0xa0000000 0x08000000>;
        };
 
-       usbphy {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               usbphy0: usbphy@0 {
-                       compatible = "usb-nop-xceiv";
-                       reg = <0>;
-                       clocks = <&clks IMX27_CLK_DUMMY>;
-                       clock-names = "main_clk";
-                       #phy-cells = <0>;
-               };
+
+       usbphy0: usbphy {
+               compatible = "usb-nop-xceiv";
+               clocks = <&clks IMX27_CLK_DUMMY>;
+               clock-names = "main_clk";
+               #phy-cells = <0>;
        };
 };
 
index 25442eba21c1e0ad2dd8c5a603853c3d9dddb874..27c93b9fe0499fc9438b713086391adf375c04dc 100644 (file)
@@ -19,7 +19,7 @@
                fsl,pcr = <0xf0c88080>; /* non-standard but required */
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 640x480 {
+                       timing0: timing0 {
                                hactive = <640>;
                                vactive = <480>;
                                hback-porch = <112>;
index 7f0cd4d3ec2de4e5e1c89f8b6de9dde6669a6d2b..b8048e12e3d9abcd5c75b062848bf650eec7c43d 100644 (file)
@@ -19,7 +19,7 @@
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 240x320 {
+                       timing0: timing0 {
                                clock-frequency = <5500000>;
                                hactive = <240>;
                                vactive = <320>;
                regulator-always-on;
        };
 
-       usbphy {
-               usbphy2: usbphy@2 {
-                       compatible = "usb-nop-xceiv";
-                       reg = <2>;
-                       vcc-supply = <&reg_5v0>;
-                       clocks = <&clks IMX27_CLK_DUMMY>;
-                       clock-names = "main_clk";
-                       #phy-cells = <0>;
-               };
+       usbphy2: usbphy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&reg_5v0>;
+               clocks = <&clks IMX27_CLK_DUMMY>;
+               clock-names = "main_clk";
+               #phy-cells = <0>;
        };
 };
 
index 7b2ea4cdae58c98414e189a1428605710ff22792..e958d7286ae9d397161b2e7404617bf6f75c0182 100644 (file)
                regulator-max-microvolt = <5000000>;
        };
 
-       usbphy {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               usbphy0: usbphy@0 {
-                       compatible = "usb-nop-xceiv";
-                       reg = <0>;
-                       vcc-supply = <&sw3_reg>;
-                       clocks = <&clks IMX27_CLK_DUMMY>;
-                       clock-names = "main_clk";
-                       #phy-cells = <0>;
-               };
+
+       usbphy0: usbphy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&sw3_reg>;
+               clocks = <&clks IMX27_CLK_DUMMY>;
+               clock-names = "main_clk";
+               #phy-cells = <0>;
        };
 };
 
        status = "okay";
 
        /* SSI0 <=> PINS_4 (MC13783 Audio) */
-       ssi0 {
+       mux-ssi0 {
                fsl,audmux-port = <0>;
                fsl,port-config = <0xcb205000>;
        };
 
-       pins4 {
+       mux-pins4 {
                fsl,audmux-port = <2>;
                fsl,port-config = <0x00001000>;
        };
                reg = <0x52>;
        };
 
-       pcf8563@51 {
+       rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
        };
 &weim {
        status = "okay";
 
-       nor: nor@0,0 {
+       nor: flash@0,0 {
                compatible = "cfi-flash";
                reg = <0 0x00000000 0x02000000>;
                bank-width = <2>;
index faba12ee7465eb2f8bc63471b3c22bb0933f71d6..ec472695c71ea9e8f05a7b424c84589ec4c95957 100644 (file)
@@ -81,7 +81,7 @@
                interrupt-parent = <&aitc>;
                ranges;
 
-               aipi1: aipi@10000000 { /* AIPI1 */
+               aipi1: bus@10000000 { /* AIPI1 */
                        compatible = "fsl,aipi-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               aipi2: aipi@10020000 { /* AIPI2 */
+               aipi2: bus@10020000 { /* AIPI2 */
                        compatible = "fsl,aipi-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                iram: sram@ffff4c00 {
                        compatible = "mmio-sram";
                        reg = <0xffff4c00 0xb400>;
+                       ranges = <0 0xffff4c00 0xb400>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                };
        };
 };
index 055d23a9aee7c0f280c8bbac823294dcd54fcef8..0814f5665a59c3a64c6023714a3b58230ac80dda 100644 (file)
@@ -22,7 +22,7 @@
        };
 
        display-0 {
-               #address-cells =<1>;
+               #address-cells = <1>;
                #size-cells = <0>;
                compatible = "fsl,imx-parallel-display";
                interface-pix-fmt = "rgb24";
index 7d4ae113c381d201458e7283a5811e98f4bafcd3..63cdf24eb397ed9705a7c2c2cbdb4ba4c12cfbbe 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "ilitek,ili251x";
                reg = <0x41>;
                pinctrl-names = "default";
-               pinctrl-0 =<&pinctrl_q7_gpio0>;
+               pinctrl-0 = <&pinctrl_q7_gpio0>;
                interrupt-parent = <&gpio5>;
                interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
                reset-gpios = <&tca6424a 21 GPIO_ACTIVE_LOW>;
index 9c5938e16d99aa45d0df4892a7fb1d71017c9133..2e75d700efdb322a12f6726f56aca9c30caaf8a1 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "ilitek,ili251x";
                reg = <0x41>;
                pinctrl-names = "default";
-               pinctrl-0 =<&pinctrl_q7_gpio0>;
+               pinctrl-0 = <&pinctrl_q7_gpio0>;
                interrupt-parent = <&gpio5>;
                interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
                reset-gpios = <&tca6424a 21 GPIO_ACTIVE_LOW>;
index 01df7cffcef2ea8fe7d6795d71891dad07c92215..94625d5d5918e8d6bcf36e796a4b64f47316f9ce 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "eeti,exc80h60";
                reg = <0x2a>;
                pinctrl-names = "default";
-               pinctrl-0 =<&pinctrl_q7_gpio0>;
+               pinctrl-0 = <&pinctrl_q7_gpio0>;
                interrupt-parent = <&gpio5>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;
index a015453daf10ef0289aaff0eba465208451c7cca..b3cfa8110ade459edabea8cdc67500a67098a82b 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "eeti,exc80h60";
                reg = <0x2a>;
                pinctrl-names = "default";
-               pinctrl-0 =<&pinctrl_q7_gpio0>;
+               pinctrl-0 = <&pinctrl_q7_gpio0>;
                interrupt-parent = <&gpio5>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;
index b71ee6b792088dde55147f2cd556fee45ecb7df0..7edc788bcb8f3a7599b4d14a45383b3c274b5d4b 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "eeti,exc80h84";
                reg = <0x2a>;
                pinctrl-names = "default";
-               pinctrl-0 =<&pinctrl_q7_gpio0>;
+               pinctrl-0 = <&pinctrl_q7_gpio0>;
                interrupt-parent = <&gpio5>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                touchscreen-inverted-x;
index 717decda0cebd5138a0febfed8e56c6a55fb67a3..3ac7a45016205a4fd19d015a5837b9b767e4454c 100644 (file)
@@ -76,6 +76,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_enable_can1_power>;
                regulator-name = "can1_supply";
+               startup-delay-us = <1000>;
        };
 
        reg_can2_supply: regulator-can2-supply {
@@ -85,6 +86,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_enable_can2_power>;
                regulator-name = "can2_supply";
+               startup-delay-us = <1000>;
        };
 };
 
index db8c332df6a1d53f1b3eff6572a9f080ac10fe0a..cad112e054758f7ce364f2346eb4e1e291086a61 100644 (file)
 
                #address-cells = <3>;
                #size-cells = <2>;
-               #interrupt-cells = <1>;
 
                bridge@2,1 {
                        compatible = "pci10b5,8605";
 
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       #interrupt-cells = <1>;
 
                        /* Intel Corporation I210 Gigabit Network Connection */
                        ethernet@3,0 {
 
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       #interrupt-cells = <1>;
 
                        /* Intel Corporation I210 Gigabit Network Connection */
                        switch_nic: ethernet@4,0 {
index 99f4f6ac71d4a18f6f6eb2f0476c47280ba844b7..c1ae7c47b44227c2438d4e7c73fbafd6eaa269b9 100644 (file)
                                reg = <0x74>;
                                gpio-controller;
                                #gpio-cells = <2>;
+                               #interrupt-cells = <2>;
                                interrupt-controller;
                                interrupt-parent = <&gpio2>;
                                interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 
                #address-cells = <3>;
                #size-cells = <2>;
-               #interrupt-cells = <1>;
        };
 };
 
index 6f9d094dd6d0151404720bbc3bdd8a85cf89cb7f..18a620832a2ad358d54554867a3a715624635ff6 100644 (file)
@@ -16,7 +16,7 @@
        compatible = "variscite,mx6customboard", "variscite,var-som-imx6q", "fsl,imx6q";
 
        panel0: lvds-panel0 {
-               compatible =  "panel-lvds";
+               compatible = "panel-lvds";
                backlight = <&backlight_lvds>;
                width-mm = <152>;
                height-mm = <91>;
@@ -43,7 +43,7 @@
        };
 
        panel1: lvds-panel1 {
-               compatible =  "panel-lvds";
+               compatible = "panel-lvds";
                width-mm = <152>;
                height-mm = <91>;
                data-mapping = "jeida-18";
index 4cc965277c52199d665a7c7ea455b0d42cb92ea6..ea40623d12e5fddc11b2af150ca6a80af93510a3 100644 (file)
        model = "Toradex Apalis iMX6Q/D Module";
        compatible = "toradex,apalis_imx6q", "fsl,imx6q";
 
+       aliases {
+               mmc0 = &usdhc3; /* eMMC */
+               mmc1 = &usdhc1; /* MMC1 slot */
+               mmc2 = &usdhc2; /* SD1 slot */
+               /delete-property/ mmc3;
+       };
+
        /* Will be filled by the bootloader */
        memory@10000000 {
                device_type = "memory";
        reg_usb_host_vbus: regulator-usb-host-vbus {
                compatible = "regulator-fixed";
                enable-active-high;
-               gpio =  <&gpio1 0 GPIO_ACTIVE_HIGH>;
+               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
                regulator-max-microvolt = <5000000>;
                blocks = <0x5>;
                id = <0>;
                interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-controller;
                interrupt-parent = <&gpio4>;
                irq-trigger = <0x1>;
                pinctrl-names = "default";
index 11d9c7a2dacb14edcb4bdb58735b19729672f7d7..d3a7a6eeb8e09edff6963de86527e13899e3c956 100644 (file)
        model = "Toradex Colibri iMX6DL/S Module";
        compatible = "toradex,colibri_imx6dl", "fsl,imx6dl";
 
+       aliases {
+               mmc0 = &usdhc3; /* eMMC */
+               mmc1 = &usdhc1; /* MMC/SD Slot */
+               /delete-property/ mmc2;
+               /delete-property/ mmc3;
+       };
+
        backlight: backlight {
                compatible = "pwm-backlight";
                brightness-levels = <0 45 63 88 119 158 203 255>;
                blocks = <0x5>;
                interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&gpio6>;
-               interrupt-controller;
                id = <0>;
                irq-trigger = <0x1>;
                pinctrl-names = "default";
index f1a41c76729cb5c67d58df96a12351a85007bfbe..5587069b60521758a22dd2767b528d139a1f358b 100644 (file)
@@ -54,7 +54,7 @@
        clk_codec: clock-codec {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency  = <12000000>;
+               clock-frequency = <12000000>;
        };
 
        sound {
index a63e73adc1fc532175d8cd1baca8ede060f4d2f8..42b2ba23aefc9e26ddb3a8e0317013e30602fdbe 100644 (file)
                pinctrl-0 = <&pinctrl_pmic>;
                interrupt-parent = <&gpio2>;
                interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-controller;
 
                onkey {
                        compatible = "dlg,da9063-onkey";
index da0f8dae1ea827e79db946c3510aeac22437d03d..4d2abcd44eff2455a836e7237b83bce01ec8ed6c 100644 (file)
 
        pinctrl_pwm1: pwm1grp {
                fsl,pins = <
-                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       /* 100 k PD, DSE 120 OHM, SPEED LO */
                        MX6QDL_PAD_GPIO_9__PWM1_OUT 0x00003050
                >;
        };
 
        pinctrl_pwm3: pwm3grp {
                fsl,pins = <
-                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       /* 100 k PD, DSE 120 OHM, SPEED LO */
                        MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x00003050
                >;
        };
 
        pinctrl_pwm4: pwm4grp {
                fsl,pins = <
-                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       /* 100 k PD, DSE 120 OHM, SPEED LO */
                        MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x00003050
                >;
        };
index 113974520d544b72ff3397629935037c1d1cae53..c0c47adc5866e3ea157b499f15d8edf8b2d1fcde 100644 (file)
                reg = <0x58>;
                interrupt-parent = <&gpio2>;
                interrupts = <9 IRQ_TYPE_LEVEL_LOW>; /* active-low GPIO2_9 */
+               #interrupt-cells = <2>;
                interrupt-controller;
 
                regulators {
index 86b4269e0e0117b3906b625537444533c28510fb..85e278eb201610a1c851c4093025bb205e02a3b3 100644 (file)
                interrupt-parent = <&gpio1>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
                gpio-controller;
                #gpio-cells = <2>;
 
index b81799d7076aa7b1a149e7b600453f0107b8f9c1..596b3bb3ddd1b803cd6173bcac3c10ef4068ffe1 100644 (file)
@@ -25,7 +25,7 @@
                compatible = "ti,tsc2046e-adc";
                reg = <0>;
                pinctrl-0 = <&pinctrl_touch>;
-               pinctrl-names ="default";
+               pinctrl-names = "default";
                spi-max-frequency = <1000000>;
                interrupts-extended = <&gpio3 19 IRQ_TYPE_LEVEL_LOW>;
                #io-channel-cells = <1>;
index bda182edc589159f835023e5098f8662c21d1ca3..81142c523fa8c399096af322674de1e9b7c5bfd5 100644 (file)
                                                <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
                                        dma-names = "rxa", "rxb", "rxc",
                                                        "txa", "txb", "txc";
-                                       fsl,asrc-rate  = <48000>;
+                                       fsl,asrc-rate = <48000>;
                                        fsl,asrc-width = <16>;
                                        status = "okay";
                                };
index f6b35923ad83ec9eb3577e5cbbe5565baea686ad..df3a375f0a3e85e007fe86f0c8d2a980770cda61 100644 (file)
                                               <&sdma 21 23 1>, <&sdma 22 23 1>;
                                        dma-names = "rxa", "rxb", "rxc",
                                                    "txa", "txb", "txc";
-                                       fsl,asrc-rate  = <48000>;
+                                       fsl,asrc-rate = <48000>;
                                        fsl,asrc-width = <16>;
                                        status = "okay";
                                };
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
                                fsl,tuning-start-tap = <20>;
-                               fsl,tuning-step= <2>;
+                               fsl,tuning-step = <2>;
                                status = "disabled";
                        };
 
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
                                fsl,tuning-start-tap = <20>;
-                               fsl,tuning-step= <2>;
+                               fsl,tuning-step = <2>;
                                status = "disabled";
                        };
 
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
                                fsl,tuning-start-tap = <20>;
-                               fsl,tuning-step= <2>;
+                               fsl,tuning-step = <2>;
                                status = "disabled";
                        };
 
index 3b87d980e9f46598bfa64e89f9eb0d296d6ae488..a27a7554c2e7fdaaeadb52b5d8530ff0ba87fd0b 100644 (file)
                                                <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
                                        dma-names = "rxa", "rxb", "rxc",
                                                    "txa", "txb", "txc";
-                                       fsl,asrc-rate  = <48000>;
+                                       fsl,asrc-rate = <48000>;
                                        fsl,asrc-width = <16>;
                                        status = "okay";
                                };
index 44cc4ff1d0df358ab66bb036d127175da1be74b6..d12fb44aeb140cfacf05a5b257d2106c79392279 100644 (file)
        tpm_tis: tpm@1 {
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_tpm>;
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                reg = <1>;
                spi-max-frequency = <20000000>;
                interrupt-parent = <&gpio5>;
index fe42b0a468310808d619371d3dabe8f6b5e1a3e9..3fc3130f9defe4da6905870081d3bc661334a463 100644 (file)
                };
        };
 
-       /* NXP SE97BTP with temperature sensor + eeprom */
+       /* LM75A temperature sensor, TQMa7x 01xx */
+       lm75a: temperature-sensor@48 {
+               compatible = "national,lm75a";
+               reg = <0x48>;
+       };
+
+       /* NXP SE97BTP with temperature sensor + eeprom, TQMa7x 02xx */
        se97b: temperature-sensor-eeprom@1e {
                compatible = "nxp,se97b", "jedec,jc-42.4-temp";
                reg = <0x1e>;
-               status = "okay";
        };
 
        /* ST M24C64 */
index 3740e34ef99f1b6aebd4e6645fb29eb2c3af11f0..9670f45eab3bad4c10f771407fb65e057357782f 100644 (file)
                /* Required to properly pass MAC addresses from bootloader. */
                ethernet0 = &fec1;
                ethernet1 = &fec2;
+               mmc0 = &usdhc3; /* eMMC */
+               mmc1 = &usdhc1; /* MMC/SD slot */
+               /delete-property/ mmc2;
+               /delete-property/ mmc3;
        };
 
        memory@80000000 {
index 3a723843d5626f6cc4b9ee2750968c01e46306db..9984b343cdf0cad1abd9e0d4d142ded838c47980 100644 (file)
         * TCG specification - Section 6.4.1 Clocking:
         * TPM shall support a SPI clock frequency range of 10-24 MHz.
         */
-       st33htph: tpm-tis@0 {
+       st33htph: tpm@0 {
                compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
                reg = <0>;
                spi-max-frequency = <24000000>;
index dd8003bd1fc09c83d6aa83e79c46f14e07674599..f0fda15f30204a9d058543eabf1395485e07aca0 100644 (file)
        keep-power-in-suspend;
        wakeup-source;
        vmmc-supply = <&reg_wlreg_on>;
-       vqmmc-supply =<&reg_3p3v>;
+       vqmmc-supply = <&reg_3p3v>;
        status = "okay";
 
        brcmf: wifi@1 {
index 12361fcbe24aff98a70482f2a7885c6ce28cb3b2..1b965652291bfaf5d6bad76ac3eaf10974eac6ea 100644 (file)
@@ -63,6 +63,7 @@
                gpio-controller;
                #gpio-cells = <2>;
                #interrupt-cells = <2>;
+               interrupt-controller;
                reg = <0x25>;
        };
 
index c5eefe89cd9964a5f6b4e7e3c936198ee028bf7c..8d5037ac03c7d1a6651c7f23e6fb871b95932662 100644 (file)
        assigned-clock-rates = <0>, <32768>;
 };
 
+&cpu0 {
+       cpu-supply = <&sw1a_reg>;
+};
+
+&cpu1 {
+       cpu-supply = <&sw1a_reg>;
+};
+
 &ecspi3 {
        cs-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
        pinctrl-names = "default";
index 85b97b5f64e72830b2a76d94f5177ac7e4531340..7ed27c7ad726fa0f0328778fc351be8ab226eba4 100644 (file)
 
 &i2c2 {
        pinctrl-names = "default";
-       pinctrl-0 =<&pinctrl_i2c2>;
+       pinctrl-0 = <&pinctrl_i2c2>;
        clock-frequency = <100000>;
        status = "okay";
 
index 4b94b8afb55d912a884d727d47c7a948dc4fbf5c..0484e349e064e4de58162c61efb09e6f2e5ed9f4 100644 (file)
 };
 
 &ca_funnel_in_ports {
-       #address-cells = <1>;
-       #size-cells = <0>;
-
        port@1 {
                reg = <1>;
                ca_funnel_in_port1: endpoint {
index 5387da8a2a0a37f4d9662a5498d4612f379b8e4b..9c81c6baa2d39ae7cd73a34144598d513423c343 100644 (file)
                interrupt-parent = <&gpc>;
                ranges;
 
+               ocram: sram@900000 {
+                       compatible = "mmio-sram";
+                       reg = <0x00900000 0x20000>;
+                       ranges = <0 0x00900000 0x20000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&clks IMX7D_OCRAM_CLK>;
+               };
+
                funnel@30041000 {
                        compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                        reg = <0x30041000 0x1000>;
                        clock-names = "apb_pclk";
 
                        ca_funnel_in_ports: in-ports {
-                               port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
                                        ca_funnel_in_port0: endpoint {
                                                remote-endpoint = <&etm0_out_port>;
                                        };
                                        nvmem-cells = <&tempmon_calib>, <&fuse_grade>;
                                        nvmem-cell-names = "calib", "temp_grade";
                                        clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
+                                       #thermal-sensor-cells = <0>;
                                };
                        };
 
                                clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
                                        <&clks IMX7D_ECSPI4_ROOT_CLK>;
                                clock-names = "ipg", "per";
+                               dma-names = "rx", "tx";
+                               dmas = <&sdma 6 7 1>, <&sdma 7 7 2>;
                                status = "disabled";
                        };
 
                        };
 
                        lcdif: lcdif@30730000 {
-                               compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
+                               compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif";
                                reg = <0x30730000 0x10000>;
                                interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
                                        };
                                };
                        };
+
+                       mipi_dsi: dsi@30760000 {
+                               compatible = "fsl,imx7d-mipi-dsim", "fsl,imx8mm-mipi-dsim";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x30760000 0x400>;
+                               clocks = <&clks IMX7D_MIPI_DSI_ROOT_CLK>,
+                                        <&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
+                               clock-names = "bus_clk", "sclk_mipi";
+                               assigned-clocks = <&clks IMX7D_MIPI_DSI_ROOT_SRC>,
+                                                 <&clks IMX7D_PLL_SYS_PFD5_CLK>;
+                               assigned-clock-parents = <&clks IMX7D_PLL_SYS_PFD5_CLK>;
+                               assigned-clock-rates = <0>, <333000000>;
+                               power-domains = <&pgc_mipi_phy>;
+                               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                               samsung,burst-clock-frequency = <891000000>;
+                               samsung,esc-clock-frequency = <20000000>;
+                               samsung,pll-clock-frequency = <24000000>;
+                               status = "disabled";
+                       };
                };
 
                aips3: bus@30800000 {
                                        clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
                                                <&clks IMX7D_ECSPI1_ROOT_CLK>;
                                        clock-names = "ipg", "per";
+                                       dma-names = "rx", "tx";
+                                       dmas = <&sdma 0 7 1>, <&sdma 1 7 2>;
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
                                                <&clks IMX7D_ECSPI2_ROOT_CLK>;
                                        clock-names = "ipg", "per";
+                                       dma-names = "rx", "tx";
+                                       dmas = <&sdma 2 7 1>, <&sdma 3 7 2>;
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
                                                <&clks IMX7D_ECSPI3_ROOT_CLK>;
                                        clock-names = "ipg", "per";
+                                       dma-names = "rx", "tx";
+                                       dmas = <&sdma 4 7 1>, <&sdma 5 7 2>;
                                        status = "disabled";
                                };
 
                gpmi: nand-controller@33002000 {
                        compatible = "fsl,imx7d-gpmi-nand";
                        #address-cells = <1>;
-                       #size-cells = <1>;
+                       #size-cells = <0>;
                        reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
                        reg-names = "gpmi-nand", "bch";
                        interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
index 5a8b867d7d793132bbeb75de5b4f57f53f67acf5..e78d0a7d8cd28cf3637cd5d3ab0a45089e994813 100644 (file)
 
        pinctrl_pwm2: pwm2grp {
                fsl,pins = <
-                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       /* 100 k PD, DSE 120 OHM, SPEED LO */
                        MX6UL_PAD_GPIO1_IO09__PWM2_OUT          0x00003050
                >;
        };
index 9cf09c183b85e8346ee121034d4d5caef8eb7cc8..6dd73290f0c6392a407e5115551cbbeaf654f94f 100644 (file)
@@ -74,7 +74,7 @@
                sct_pwm: pwm@40000000 {
                        compatible = "nxp,lpc1850-sct-pwm";
                        reg = <0x40000000 0x1000>;
-                       clocks =<&ccu1 CLK_CPU_SCT>;
+                       clocks = <&ccu1 CLK_CPU_SCT>;
                        clock-names = "pwm";
                        resets = <&rgu 37>;
                        #pwm-cells = <3>;
index 49c78c84cd5dfde3b085281a3a4e4bcceeb6f107..d471cc5efa949bbb67c4227a74b7d3e77815ab81 100644 (file)
                        compatible = "fsl,ls1021a-msi";
                        reg = <0x0 0x1570e00 0x0 0x8>;
                        msi-controller;
-                       interrupts =  <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                msi2: msi-controller@1570e08 {
index 636cf09a2b375f79af1fb47672019bb850f17a89..b23e7ada9c804f0721c908c419a47757ee20f52a 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "i2c-gpio";
-               gpios = <
-                       &gpio1 24 0             /* SDA */
-                       &gpio1 22 0             /* SCL */
-               >;
+               sda-gpios = <&gpio1 24 0>;
+               scl-gpios = <&gpio1 22 0>;
                i2c-gpio,delay-us = <2>;        /* ~100 kHz */
        };
 
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "i2c-gpio";
-               gpios = <
-                       &gpio0 31 0             /* SDA */
-                       &gpio0 30 0             /* SCL */
-               >;
+               sda-gpios = <&gpio0 31 0>;
+               scl-gpios = <&gpio0 30 0>;
                i2c-gpio,delay-us = <2>;        /* ~100 kHz */
 
                touch: touch@20 {
index fdf18b7cb2f6a29b298c12a25045907e9ddeac58..0309592af1e1eba8f767564a1fc663f6863f8a86 100644 (file)
                                reg = <0x80018000 0x2000>;
 
                                gpio0: gpio@0 {
-                                       compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx23-gpio";
                                        reg = <0>;
                                        interrupts = <16>;
                                        gpio-controller;
                                };
 
                                gpio1: gpio@1 {
-                                       compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx23-gpio";
                                        reg = <1>;
                                        interrupts = <17>;
                                        gpio-controller;
                                };
 
                                gpio2: gpio@2 {
-                                       compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx23-gpio";
                                        reg = <2>;
                                        interrupts = <18>;
                                        gpio-controller;
                                status = "disabled";
                        };
 
-                       dma_apbx: dma-apbx@80024000 {
+                       dma_apbx: dma-controller@80024000 {
                                compatible = "fsl,imx23-dma-apbx";
                                reg = <0x80024000 0x2000>;
                                interrupts = <7>, <5>, <9>, <26>,
                        ranges;
 
                        clks: clkctrl@80040000 {
-                               compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
+                               compatible = "fsl,imx23-clkctrl";
                                reg = <0x80040000 0x2000>;
                                #clock-cells = <1>;
                        };
index bb971e660db8e3eb704e7f8f9c43a77c4a8c70c9..69fcb0dde9402696755f48863bebdb3d372375f0 100644 (file)
@@ -18,6 +18,7 @@
 
        memory@40000000 {
                reg = <0x40000000 0x08000000>;
+               device_type = "memory";
        };
 
        reg_3v3: regulator-reg-3v3 {
index 153e4017951d886e48a67d5a5443b6352fe491fb..5485fe118dc48bc35bdf6ce0f41cae08d5ab8e7b 100644 (file)
        sgtl5000: sgtl5000@a {
                compatible = "fsl,sgtl5000";
                reg = <0x0a>;
+               #sound-dai-cells = <0>;
                VDDA-supply = <&reg_2p5v>;
                VDDIO-supply = <&reg_3p3v>;
                clocks = <&mclk>;
index 6932d23fb29deca68fb66dcbc79b1ece6ba8308c..4817fba2d938b97980e2fb44c33955f666c1cd4a 100644 (file)
                                reg = <0x80018000 0x2000>;
 
                                gpio0: gpio@0 {
-                                       compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx28-gpio";
                                        reg = <0>;
                                        interrupts = <127>;
                                        gpio-controller;
                                };
 
                                gpio1: gpio@1 {
-                                       compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx28-gpio";
                                        reg = <1>;
                                        interrupts = <126>;
                                        gpio-controller;
                                };
 
                                gpio2: gpio@2 {
-                                       compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx28-gpio";
                                        reg = <2>;
                                        interrupts = <125>;
                                        gpio-controller;
                                };
 
                                gpio3: gpio@3 {
-                                       compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx28-gpio";
                                        reg = <3>;
                                        interrupts = <124>;
                                        gpio-controller;
                                };
 
                                gpio4: gpio@4 {
-                                       compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       compatible = "fsl,imx28-gpio";
                                        reg = <4>;
                                        interrupts = <123>;
                                        gpio-controller;
                                status = "disabled";
                        };
 
-                       dma_apbx: dma-apbx@80024000 {
+                       dma_apbx: dma-controller@80024000 {
                                compatible = "fsl,imx28-dma-apbx";
                                reg = <0x80024000 0x2000>;
                                interrupts = <78>, <79>, <66>, <0>,
                        ranges;
 
                        clks: clkctrl@80040000 {
-                               compatible = "fsl,imx28-clkctrl", "fsl,clkctrl";
+                               compatible = "fsl,imx28-clkctrl";
                                reg = <0x80040000 0x2000>;
                                #clock-cells = <1>;
                        };
index 14c411f146f50f499bfc3d8e5ecf63bd30a90e3e..5a19da9313ae6c205debc920878f08435228118d 100644 (file)
@@ -55,7 +55,7 @@
        brightness-levels = <0 4 8 16 32 64 128 255>;
        default-brightness-level = <6>;
        power-supply = <&reg_3v3>;
-       status  = "okay";
+       status = "okay";
 };
 
 &dcu0 {
index e4f691d601cc2e51c63d5d4f2daf909dbeceb232..722182f5fd17229ecadfc70947a574ce467fc4fb 100644 (file)
@@ -68,7 +68,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
                /* PTD12 ->RPIO[91] */
-               sck-gpios  = <&gpio2 27 GPIO_ACTIVE_LOW>;
+               sck-gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
                /* PTD10 ->RPIO[89] */
                miso-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
                num-chipselects = <0>;
@@ -79,7 +79,7 @@
                        gpio-controller;
                        #gpio-cells = <2>;
                        /* PTB18 -> RGPIO[40] */
-                       load-gpios  = <&gpio1 8 GPIO_ACTIVE_LOW>;
+                       load-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
                        spi-max-frequency = <100000>;
                };
        };
index 1a19aec8957b744e4254931e8527d9829b5a70ac..7e72f860c3c5165d7d18f1f891f08d14f8c482d1 100644 (file)
                suppress-preamble;
                status = "okay";
 
-               switch0: switch0@0 {
+               switch0: ethernet-switch@0 {
                        compatible = "marvell,mv88e6085";
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_switch>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
-                       ports {
+                       ethernet-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               port@0 {
+                               ethernet-port@0 {
                                        reg = <0>;
                                        label = "eth_cu_1000_1";
                                };
 
-                               port@1 {
+                               ethernet-port@1 {
                                        reg = <1>;
                                        label = "eth_cu_1000_2";
                                };
 
-                               port@2 {
+                               ethernet-port@2 {
                                        reg = <2>;
                                        label = "eth_cu_1000_3";
                                };
 
-                               port@5 {
+                               ethernet-port@5 {
                                        reg = <5>;
                                        label = "eth_fc_1000_1";
                                        phy-mode = "1000base-x";
                                        sfp = <&sff>;
                                };
 
-                               port@6 {
+                               ethernet-port@6 {
                                        reg = <6>;
                                        phy-mode = "rmii";
                                        ethernet = <&fec1>;
index 16b4e06c4efad36e5a811d17cdafcb4753559b0a..029f49be40e373f706f7f67c34358ba9272ea0af 100644 (file)
                pinctrl-names = "default";
                #address-cells = <1>;
                #size-cells = <0>;
-               sck-gpios  = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+               sck-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
                mosi-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
                miso-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
-               cs-gpios  = <&gpio1  9 GPIO_ACTIVE_LOW
-                            &gpio1  8 GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio1 9 GPIO_ACTIVE_LOW
+                           &gpio1 8 GPIO_ACTIVE_HIGH>;
                num-chipselects = <2>;
 
                flash@0 {
                reg = <0x22>;
                gpio-controller;
                #gpio-cells = <2>;
+               #interrupt-cells = <2>;
                interrupt-controller;
                interrupt-parent = <&gpio3>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
index df1335492a199841483dc9facd40834fab48003c..77492eeea4509bf2bc05ac48a57836076e604cbd 100644 (file)
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0: switch0@0 {
+                       switch0: ethernet-switch@0 {
                                compatible = "marvell,mv88e6190";
                                reg = <0>;
                                dsa,member = <0 0>;
                                eeprom-length = <65536>;
 
-                               ports {
+                               ethernet-ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       port@0 {
+                                       ethernet-port@0 {
                                                reg = <0>;
                                                phy-mode = "rmii";
                                                ethernet = <&fec1>;
                                                };
                                        };
 
-                                       port@1 {
+                                       ethernet-port@1 {
                                                reg = <1>;
                                                label = "aib2main_1";
                                        };
 
-                                       port@2 {
+                                       ethernet-port@2 {
                                                reg = <2>;
                                                label = "aib2main_2";
                                        };
 
-                                       port@3 {
+                                       ethernet-port@3 {
                                                reg = <3>;
                                                label = "eth_cu_1000_5";
                                        };
 
-                                       port@4 {
+                                       ethernet-port@4 {
                                                reg = <4>;
                                                label = "eth_cu_1000_6";
                                        };
 
-                                       port@5 {
+                                       ethernet-port@5 {
                                                reg = <5>;
                                                label = "eth_cu_1000_4";
                                        };
 
-                                       port@6 {
+                                       ethernet-port@6 {
                                                reg = <6>;
                                                label = "eth_cu_1000_7";
                                        };
 
-                                       port@7 {
+                                       ethernet-port@7 {
                                                reg = <7>;
                                                label = "modem_pic";
 
                                                };
                                        };
 
-                                       switch0port10: port@10 {
+                                       switch0port10: ethernet-port@10 {
                                                reg = <10>;
                                                label = "dsa";
                                                phy-mode = "xgmii";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch1: switch1@0 {
+                       switch1: ethernet-switch@0 {
                                compatible = "marvell,mv88e6190";
                                reg = <0>;
                                dsa,member = <0 1>;
                                eeprom-length = <65536>;
 
-                               ports {
+                               ethernet-ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       port@1 {
+                                       ethernet-port@1 {
                                                reg = <1>;
                                                label = "eth_cu_1000_3";
                                        };
 
-                                       port@2 {
+                                       ethernet-port@2 {
                                                reg = <2>;
                                                label = "eth_cu_100_2";
                                        };
 
-                                       port@3 {
+                                       ethernet-port@3 {
                                                reg = <3>;
                                                label = "eth_cu_100_3";
                                        };
 
-                                       switch1port9: port@9 {
+                                       switch1port9: ethernet-port@9 {
                                                reg = <9>;
                                                label = "dsa";
                                                phy-mode = "xgmii";
                                                };
                                        };
 
-                                       switch1port10: port@10 {
+                                       switch1port10: ethernet-port@10 {
                                                reg = <10>;
                                                label = "dsa";
                                                phy-mode = "xgmii";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch2: switch2@0 {
+                       switch2: ethernet-switch@0 {
                                compatible = "marvell,mv88e6190";
                                reg = <0>;
                                dsa,member = <0 2>;
                                eeprom-length = <65536>;
 
-                               ports {
+                               ethernet-ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       port@2 {
+                                       ethernet-port@2 {
                                                reg = <2>;
                                                label = "eth_fc_1000_2";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff1>;
                                        };
 
-                                       port@3 {
+                                       ethernet-port@3 {
                                                reg = <3>;
                                                label = "eth_fc_1000_3";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff2>;
                                        };
 
-                                       port@4 {
+                                       ethernet-port@4 {
                                                reg = <4>;
                                                label = "eth_fc_1000_4";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff3>;
                                        };
 
-                                       port@5 {
+                                       ethernet-port@5 {
                                                reg = <5>;
                                                label = "eth_fc_1000_5";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff4>;
                                        };
 
-                                       port@6 {
+                                       ethernet-port@6 {
                                                reg = <6>;
                                                label = "eth_fc_1000_6";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff5>;
                                        };
 
-                                       port@7 {
+                                       ethernet-port@7 {
                                                reg = <7>;
                                                label = "eth_fc_1000_7";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff6>;
                                        };
 
-                                       port@9 {
+                                       ethernet-port@9 {
                                                reg = <9>;
                                                label = "eth_fc_1000_1";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff0>;
                                        };
 
-                                       switch2port10: port@10 {
+                                       switch2port10: ethernet-port@10 {
                                                reg = <10>;
                                                label = "dsa";
                                                phy-mode = "2500base-x";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch3: switch3@0 {
+                       switch3: ethernet-switch@0 {
                                compatible = "marvell,mv88e6190";
                                reg = <0>;
                                dsa,member = <0 3>;
                                eeprom-length = <65536>;
 
-                               ports {
+                               ethernet-ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       port@2 {
+                                       ethernet-port@2 {
                                                reg = <2>;
                                                label = "eth_fc_1000_8";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff7>;
                                        };
 
-                                       port@3 {
+                                       ethernet-port@3 {
                                                reg = <3>;
                                                label = "eth_fc_1000_9";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff8>;
                                        };
 
-                                       port@4 {
+                                       ethernet-port@4 {
                                                reg = <4>;
                                                label = "eth_fc_1000_10";
                                                phy-mode = "1000base-x";
                                                sfp = <&sff9>;
                                        };
 
-                                       switch3port9: port@9 {
+                                       switch3port9: ethernet-port@9 {
                                                reg = <9>;
                                                label = "dsa";
                                                phy-mode = "2500base-x";
                                                };
                                        };
 
-                                       switch3port10: port@10 {
+                                       switch3port10: ethernet-port@10 {
                                                reg = <10>;
                                                label = "dsa";
                                                phy-mode = "xgmii";
index 1461804ecaea3b74bf438663b82663aa8b087104..2a490464660c08d2d998c280c96e6ddd1245972c 100644 (file)
                suppress-preamble;
                status = "okay";
 
-               switch0: switch0@0 {
+               switch0: ethernet-switch@0 {
                        compatible = "marvell,mv88e6190";
                        pinctrl-0 = <&pinctrl_gpio_switch0>;
                        pinctrl-names = "default";
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
-                       ports {
+                       ethernet-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               port@0 {
+                               ethernet-port@0 {
                                        reg = <0>;
                                        phy-mode = "rmii";
                                        ethernet = <&fec1>;
                                        };
                                };
 
-                               port@1 {
+                               ethernet-port@1 {
                                        reg = <1>;
                                        label = "eth_cu_1000_1";
                                };
 
-                               port@2 {
+                               ethernet-port@2 {
                                        reg = <2>;
                                        label = "eth_cu_1000_2";
                                };
 
-                               port@3 {
+                               ethernet-port@3 {
                                        reg = <3>;
                                        label = "eth_cu_1000_3";
                                };
 
-                               port@4 {
+                               ethernet-port@4 {
                                        reg = <4>;
                                        label = "eth_cu_1000_4";
                                };
 
-                               port@5 {
+                               ethernet-port@5 {
                                        reg = <5>;
                                        label = "eth_cu_1000_5";
                                };
 
-                               port@6 {
+                               ethernet-port@6 {
                                        reg = <6>;
                                        label = "eth_cu_1000_6";
                                };
index 463c2452b9b7f9e6ee02b0a8dcb90b415d64a171..078d8699e16d70121e9763502759ba250ac02104 100644 (file)
                suppress-preamble;
                status = "okay";
 
-               switch0: switch0@0 {
+               switch0: ethernet-switch@0 {
                        compatible = "marvell,mv88e6190";
                        pinctrl-0 = <&pinctrl_gpio_switch0>;
                        pinctrl-names = "default";
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
-                       ports {
+                       ethernet-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               port@0 {
+                               ethernet-port@0 {
                                        reg = <0>;
                                        phy-mode = "rmii";
                                        ethernet = <&fec1>;
                                        };
                                };
 
-                               port@1 {
+                               ethernet-port@1 {
                                        reg = <1>;
                                        label = "eth_cu_100_3";
                                };
 
-                               port@5 {
+                               ethernet-port@5 {
                                        reg = <5>;
                                        label = "eth_cu_1000_4";
                                };
 
-                               port@6 {
+                               ethernet-port@6 {
                                        reg = <6>;
                                        label = "eth_cu_1000_5";
                                };
 
-                               port@8 {
+                               ethernet-port@8 {
                                        reg = <8>;
                                        label = "eth_cu_1000_1";
                                };
 
-                               port@9 {
+                               ethernet-port@9 {
                                        reg = <9>;
                                        label = "eth_cu_1000_2";
                                        phy-handle = <&phy9>;
                                };
                        };
 
-                       mdio1 {
+                       mdio-external {
                                compatible = "marvell,mv88e6xxx-mdio-external";
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               phy9: phy9@0 {
+                               phy9: ethernet-phy@0 {
                                        compatible = "ethernet-phy-ieee802.3-c45";
                                        pinctrl-0 = <&pinctrl_gpio_phy9>;
                                        pinctrl-names = "default";
index f5ae0d5de31517374a5223518a8de924df1eaa03..22c8f44390a96d3b2c3abd9905ec229323c9529f 100644 (file)
                suppress-preamble;
                status = "okay";
 
-               switch0: switch0@0 {
+               switch0: ethernet-switch@0 {
                        compatible = "marvell,mv88e6190";
                        pinctrl-0 = <&pinctrl_gpio_switch0>;
                        pinctrl-names = "default";
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
-                       ports {
+                       ethernet-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               port@0 {
+                               ethernet-port@0 {
                                        reg = <0>;
                                        phy-mode = "rmii";
                                        ethernet = <&fec1>;
                                        };
                                };
 
-                               port@1 {
+                               ethernet-port@1 {
                                        reg = <1>;
                                        label = "eth_cu_1000_1";
                                };
 
-                               port@2 {
+                               ethernet-port@2 {
                                        reg = <2>;
                                        label = "eth_cu_1000_2";
                                };
 
-                               port@3 {
+                               ethernet-port@3 {
                                        reg = <3>;
                                        label = "eth_cu_1000_3";
                                };
 
-                               port@4 {
+                               ethernet-port@4 {
                                        reg = <4>;
                                        label = "eth_cu_1000_4";
                                };
 
-                               port@5 {
+                               ethernet-port@5 {
                                        reg = <5>;
                                        label = "eth_cu_1000_5";
                                };
 
-                               port@6 {
+                               ethernet-port@6 {
                                        reg = <6>;
                                        label = "eth_cu_1000_6";
                                };
diff --git a/src/arm/qcom/pm8018.dtsi b/src/arm/qcom/pm8018.dtsi
new file mode 100644 (file)
index 0000000..22f3c7b
--- /dev/null
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Device Tree Source for Qualcomm PM8018
+ *
+ * Copyright (C) 2016 BayLibre, SAS.
+ * Author : Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+&ssbi {
+       pm8018: pmic {
+               compatible = "qcom,pm8018", "qcom,pm8921";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pwrkey@1c {
+                       compatible = "qcom,pm8018-pwrkey",
+                                    "qcom,pm8921-pwrkey";
+                       reg = <0x1c>;
+                       interrupts-extended = <&pm8018 50 IRQ_TYPE_EDGE_RISING>,
+                                             <&pm8018 51 IRQ_TYPE_EDGE_RISING>;
+                       debounce = <15625>;
+                       pull-up;
+               };
+
+               pm8018_mpps: mpps@50 {
+                       compatible = "qcom,pm8018-mpp", "qcom,ssbi-mpp";
+                       reg = <0x50>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pm8018_mpps 0 0 6>;
+               };
+
+               rtc@11d {
+                       compatible = "qcom,pm8018-rtc", "qcom,pm8921-rtc";
+                       reg = <0x11d>;
+                       interrupts-extended = <&pm8018 39 IRQ_TYPE_EDGE_RISING>;
+                       allow-set-time;
+               };
+
+               pm8018_gpio: gpio@150 {
+                       compatible = "qcom,pm8058-gpio",
+                                    "qcom,ssbi-gpio";
+                       reg = <0x150>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8018_gpio 0 0 6>;
+                       #gpio-cells = <2>;
+               };
+       };
+};
diff --git a/src/arm/qcom/pm8058.dtsi b/src/arm/qcom/pm8058.dtsi
new file mode 100644 (file)
index 0000000..984b797
--- /dev/null
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0
+
+&ssbi {
+       pm8058: pmic {
+               compatible = "qcom,pm8058";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pwrkey@1c {
+                       compatible = "qcom,pm8058-pwrkey";
+                       reg = <0x1c>;
+                       interrupts-extended = <&pm8058 50 IRQ_TYPE_EDGE_RISING>,
+                                             <&pm8058 51 IRQ_TYPE_EDGE_RISING>;
+                       debounce = <15625>;
+                       pull-up;
+               };
+
+               pm8058_led48: led@48 {
+                       compatible = "qcom,pm8058-keypad-led";
+                       reg = <0x48>;
+                       status = "disabled";
+               };
+
+               vibrator@4a {
+                       compatible = "qcom,pm8058-vib";
+                       reg = <0x4a>;
+               };
+
+               pm8058_mpps: mpps@50 {
+                       compatible = "qcom,pm8058-mpp",
+                                    "qcom,ssbi-mpp";
+                       reg = <0x50>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pm8058_mpps 0 0 12>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               pm8058_led131: led@131 {
+                       compatible = "qcom,pm8058-led";
+                       reg = <0x131>;
+                       status = "disabled";
+               };
+
+               pm8058_led132: led@132 {
+                       compatible = "qcom,pm8058-led";
+                       reg = <0x132>;
+                       status = "disabled";
+               };
+
+               pm8058_led133: led@133 {
+                       compatible = "qcom,pm8058-led";
+                       reg = <0x133>;
+                       status = "disabled";
+               };
+
+               pm8058_keypad: keypad@148 {
+                       compatible = "qcom,pm8058-keypad";
+                       reg = <0x148>;
+                       interrupts-extended = <&pm8058 74 IRQ_TYPE_EDGE_RISING>,
+                                             <&pm8058 75 IRQ_TYPE_EDGE_RISING>;
+                       debounce = <15>;
+                       scan-delay = <32>;
+                       row-hold = <91500>;
+               };
+
+               pm8058_gpio: gpio@150 {
+                       compatible = "qcom,pm8058-gpio",
+                                    "qcom,ssbi-gpio";
+                       reg = <0x150>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8058_gpio 0 0 44>;
+                       #gpio-cells = <2>;
+               };
+
+               pm8058_xoadc: xoadc@197 {
+                       compatible = "qcom,pm8058-adc";
+                       reg = <0x197>;
+                       interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <2>;
+
+                       vcoin: adc-channel@0 {
+                               reg = <0x00 0x00>;
+                       };
+
+                       vbat: adc-channel@1 {
+                               reg = <0x00 0x01>;
+                       };
+
+                       dcin: adc-channel@2 {
+                               reg = <0x00 0x02>;
+                       };
+
+                       ichg: adc-channel@3 {
+                               reg = <0x00 0x03>;
+                       };
+
+                       vph_pwr: adc-channel@4 {
+                               reg = <0x00 0x04>;
+                       };
+
+                       usb_vbus: adc-channel@a {
+                               reg = <0x00 0x0a>;
+                       };
+
+                       die_temp: adc-channel@b {
+                               reg = <0x00 0x0b>;
+                       };
+
+                       ref_625mv: adc-channel@c {
+                               reg = <0x00 0x0c>;
+                       };
+
+                       ref_1250mv: adc-channel@d {
+                               reg = <0x00 0x0d>;
+                       };
+
+                       ref_325mv: adc-channel@e {
+                               reg = <0x00 0x0e>;
+                       };
+
+                       ref_muxoff: adc-channel@f {
+                               reg = <0x00 0x0f>;
+                       };
+               };
+
+               rtc@1e8 {
+                       compatible = "qcom,pm8058-rtc";
+                       reg = <0x1e8>;
+                       interrupts-extended = <&pm8058 39 IRQ_TYPE_EDGE_RISING>;
+                       allow-set-time;
+               };
+       };
+};
+
+/ {
+       /*
+        * These channels from the ADC are simply hardware monitors.
+        * That is why the ADC is referred to as "HKADC" - HouseKeeping
+        * ADC.
+        */
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&pm8058_xoadc 0x00 0x01>, /* Battery */
+                             <&pm8058_xoadc 0x00 0x02>, /* DC in (charger) */
+                             <&pm8058_xoadc 0x00 0x04>, /* VPH the main system voltage */
+                             <&pm8058_xoadc 0x00 0x0b>, /* Die temperature */
+                             <&pm8058_xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
+                             <&pm8058_xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
+                             <&pm8058_xoadc 0x00 0x0e>; /* Reference voltage 0.325V */
+       };
+};
similarity index 99%
rename from src/arm/qcom/qcom-pm8226.dtsi
rename to src/arm/qcom/pm8226.dtsi
index 2413778f371507ec2caa8b82eb77a726191417a6..2fd4f135ed84c8b28435f7f48400e61f51224647 100644 (file)
@@ -82,6 +82,8 @@
                                          "usb-valid",
                                          "dc-valid";
 
+                       status = "disabled";
+
                        chg_otg: otg-vbus { };
                };
 
diff --git a/src/arm/qcom/pm8821.dtsi b/src/arm/qcom/pm8821.dtsi
new file mode 100644 (file)
index 0000000..064e3ba
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/* This PMIC is used on a secondary SSBI bus */
+&ssbi2 {
+       pm8821: pmic {
+               compatible = "qcom,pm8821";
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8821_mpps: mpps@50 {
+                       compatible = "qcom,pm8821-mpp", "qcom,ssbi-mpp";
+                       reg = <0x50>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pm8821_mpps 0 0 4>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
diff --git a/src/arm/qcom/pm8921.dtsi b/src/arm/qcom/pm8921.dtsi
new file mode 100644 (file)
index 0000000..058962a
--- /dev/null
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0
+
+&ssbi {
+       pm8921: pmic {
+               compatible = "qcom,pm8921";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pwrkey@1c {
+                       compatible = "qcom,pm8921-pwrkey";
+                       reg = <0x1c>;
+                       interrupts-extended = <&pm8921 50 IRQ_TYPE_EDGE_RISING>,
+                                             <&pm8921 51 IRQ_TYPE_EDGE_RISING>;
+                       debounce = <15625>;
+                       pull-up;
+               };
+
+               pm8921_mpps: mpps@50 {
+                       compatible = "qcom,pm8921-mpp",
+                                    "qcom,ssbi-mpp";
+                       reg = <0x50>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pm8921_mpps 0 0 12>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               rtc@11d {
+                       compatible = "qcom,pm8921-rtc";
+                       reg = <0x11d>;
+                       interrupts-extended = <&pm8921 39 IRQ_TYPE_EDGE_RISING>;
+                       allow-set-time;
+               };
+
+               pm8921_keypad: keypad@148 {
+                       compatible = "qcom,pm8921-keypad";
+                       reg = <0x148>;
+                       interrupts-extended = <&pm8921 74 IRQ_TYPE_EDGE_RISING>,
+                                             <&pm8921 75 IRQ_TYPE_EDGE_RISING>;
+                       debounce = <15>;
+                       scan-delay = <32>;
+                       row-hold = <91500>;
+                       status = "disabled";
+               };
+
+               pm8921_gpio: gpio@150 {
+
+                       compatible = "qcom,pm8921-gpio",
+                                    "qcom,ssbi-gpio";
+                       reg = <0x150>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8921_gpio 0 0 44>;
+                       #gpio-cells = <2>;
+
+               };
+
+               pm8921_xoadc: xoadc@197 {
+                       compatible = "qcom,pm8921-adc";
+                       reg = <0x197>;
+                       interrupts-extended = <&pm8921 78 IRQ_TYPE_EDGE_RISING>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <2>;
+
+                       vcoin: adc-channel@0 {
+                               reg = <0x00 0x00>;
+                       };
+
+                       vbat: adc-channel@1 {
+                               reg = <0x00 0x01>;
+                       };
+
+                       dcin: adc-channel@2 {
+                               reg = <0x00 0x02>;
+                       };
+
+                       vph_pwr: adc-channel@4 {
+                               reg = <0x00 0x04>;
+                       };
+
+                       batt_therm: adc-channel@8 {
+                               reg = <0x00 0x08>;
+                       };
+
+                       batt_id: adc-channel@9 {
+                               reg = <0x00 0x09>;
+                       };
+
+                       usb_vbus: adc-channel@a {
+                               reg = <0x00 0x0a>;
+                       };
+
+                       die_temp: adc-channel@b {
+                               reg = <0x00 0x0b>;
+                       };
+
+                       ref_625mv: adc-channel@c {
+                               reg = <0x00 0x0c>;
+                       };
+
+                       ref_1250mv: adc-channel@d {
+                               reg = <0x00 0x0d>;
+                       };
+
+                       chg_temp: adc-channel@e {
+                               reg = <0x00 0x0e>;
+                       };
+
+                       ref_muxoff: adc-channel@f {
+                               reg = <0x00 0x0f>;
+                       };
+               };
+       };
+};
+
+/ {
+       /*
+        * These channels from the ADC are simply hardware monitors.
+        * That is why the ADC is referred to as "HKADC" - HouseKeeping
+        * ADC.
+        */
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&pm8921_xoadc 0x00 0x01>, /* Battery */
+                             <&pm8921_xoadc 0x00 0x02>, /* DC in (charger) */
+                             <&pm8921_xoadc 0x00 0x04>, /* VPH the main system voltage */
+                             <&pm8921_xoadc 0x00 0x0b>, /* Die temperature */
+                             <&pm8921_xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
+                             <&pm8921_xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
+                             <&pm8921_xoadc 0x00 0x0e>; /* Charger temperature */
+       };
+};
similarity index 99%
rename from src/arm/qcom/qcom-pm8941.dtsi
rename to src/arm/qcom/pm8941.dtsi
index ed0ba591c755817de04c732fb90f94b94e3255f1..aca0052a02b75d272afd719eb4b32993fd99250c 100644 (file)
@@ -99,6 +99,8 @@
 
                        usb-otg-in-supply = <&pm8941_5vs1>;
 
+                       status = "disabled";
+
                        chg_otg: otg-vbus { };
                };
 
index aa0e0e8d2a973ea75f3f86e938f0c909c4ea73dd..a2ca456012f1a070afc2805ae71ddbf6f5aac607 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "qcom-msm8226.dtsi"
-#include "qcom-pm8226.dtsi"
+#include "pm8226.dtsi"
 
 /delete-node/ &adsp_region;
 
        qcom,fast-charge-high-threshold-voltage = <4400000>;
        qcom,auto-recharge-threshold-voltage = <4300000>;
        qcom,minimum-input-voltage = <4400000>;
+
+       status = "okay";
 };
 
 &tlmm {
index de19640efe5538349b4fb5740bce4786bec552f0..ac228965a48559cd0e54671b1b80773a34595d1e 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "qcom-msm8226.dtsi"
-#include "qcom-pm8226.dtsi"
+#include "pm8226.dtsi"
 #include <dt-bindings/input/ti-drv260x.h>
 
 /delete-node/ &adsp_region;
        qcom,fast-charge-current-limit = <300000>;
        qcom,fast-charge-safe-current = <600000>;
        qcom,auto-recharge-threshold-voltage = <4240000>;
+
+       status = "okay";
 };
 
 &tlmm {
index b887e5361ec3a22b280554486a2a96216906f1fc..0a1fd5eb3c6d26c3e3319aeb5e2c42dc068bccb1 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "qcom-msm8226.dtsi"
-#include "qcom-pm8226.dtsi"
+#include "pm8226.dtsi"
 
 /delete-node/ &adsp_region;
 
        qcom,fast-charge-high-threshold-voltage = <4350000>;
        qcom,auto-recharge-threshold-voltage = <4240000>;
        qcom,minimum-input-voltage = <4450000>;
+
+       status = "okay";
 };
 
 &tlmm {
index f516e0426bb9e82ec71f964c315056ff558261c6..cffc069712b2f1b2cc36c80dd51284a77e7fed31 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <dt-bindings/input/input.h>
 #include "qcom-msm8226.dtsi"
-#include "qcom-pm8226.dtsi"
+#include "pm8226.dtsi"
 
 /delete-node/ &adsp_region;
 /delete-node/ &smem_region;
index 569cbf0d8df87b888d52778a305c56a9d3dc70cb..009afd8212c223231c783e90bf973a4882c31d36 100644 (file)
@@ -5,6 +5,7 @@
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 #include "qcom-msm8660.dtsi"
+#include "pm8058.dtsi"
 
 / {
        model = "Qualcomm APQ8060 Dragonboard";
@@ -71,7 +72,7 @@
                /* Trig on both edges - getting close or far away */
                interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
                /* MPP05 analog input to the XOADC */
-               io-channels = <&xoadc 0x00 0x05>;
+               io-channels = <&pm8058_xoadc 0x00 0x05>;
                io-channel-names = "aout";
                pinctrl-names = "default";
                pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
        };
 };
 
+&pm8058 {
+       interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &pm8058_gpio {
        dragon_ethernet_gpios: ethernet-state {
                pinconf {
         * that means
         */
        regulators-0 {
+               compatible = "qcom,rpm-pm8901-regulators";
+
                vdd_l0-supply = <&pm8901_s4>;
                vdd_l1-supply = <&vph>;
                vdd_l2-supply = <&vph>;
                lvs3_in-supply = <&pm8058_s2>;
                mvs_in-supply = <&pm8058_s3>;
 
-               l0 {
+               pm8901_l0: l0 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
-               l1 {
+
+               pm8901_l1: l1 {
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        bias-pull-down;
                };
-               l2 {
+
+               pm8901_l2: l2 {
                        /* TMA340 requires strictly 3.3V */
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        bias-pull-down;
                };
-               l3 {
+
+               pm8901_l3: l3 {
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        bias-pull-down;
                };
-               l4 {
+
+               pm8901_l4: l4 {
                        regulator-min-microvolt = <2600000>;
                        regulator-max-microvolt = <2600000>;
                        bias-pull-down;
                };
-               l5 {
+
+               pm8901_l5: l5 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                        bias-pull-down;
                };
-               l6 {
+
+               pm8901_l6: l6 {
                        regulator-min-microvolt = <2200000>;
                        regulator-max-microvolt = <2200000>;
                        bias-pull-down;
                };
 
                /* s0 and s1 are SAW regulators controlled over SPM */
-               s2 {
+               pm8901_s2: s2 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
-               s3 {
+               pm8901_s3: s3 {
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1100000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
-               s4 {
+               pm8901_s4: s4 {
                        regulator-min-microvolt = <1225000>;
                        regulator-max-microvolt = <1225000>;
                        qcom,switch-mode-frequency = <1600000>;
                };
 
                /* LVS0 thru 3 and mvs are just switches */
-               lvs0 {
+               pm8901_lvs0: lvs0 {
                        regulator-always-on;
                };
-               lvs1 { };
-               lvs2 { };
-               lvs3 { };
-               mvs { };
 
+               pm8901_lvs1: lvs1 { };
+
+               pm8901_lvs2: lvs2 { };
+
+               pm8901_lvs3: lvs3 { };
+
+               pm8901_mvs: mvs { };
        };
 
        regulators-1 {
+               compatible = "qcom,rpm-pm8058-regulators";
+
                vdd_l0_l1_lvs-supply = <&pm8058_s3>;
                vdd_l2_l11_l12-supply = <&vph>;
                vdd_l3_l4_l5-supply = <&vph>;
                vdd_s4-supply = <&vph>;
                vdd_ncp-supply = <&vph>;
 
-               l0 {
+               pm8058_l0: l0 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
-               l1 {
+
+               pm8058_l1: l1 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
-               l2 {
+
+               pm8058_l2: l2 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2600000>;
                        bias-pull-down;
                };
-               l3 {
+
+               pm8058_l3: l3 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
-               l4 {
+
+               pm8058_l4: l4 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                        bias-pull-down;
                };
-               l5 {
+
+               pm8058_l5: l5 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                        bias-pull-down;
                };
-               l6 {
+
+               pm8058_l6: l6 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3600000>;
                        bias-pull-down;
                };
-               l7 {
+
+               pm8058_l7: l7 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
-               l8 {
+
+               pm8058_l8: l8 {
                        regulator-min-microvolt = <2900000>;
                        regulator-max-microvolt = <3050000>;
                        bias-pull-down;
                };
-               l9 {
+
+               pm8058_l9: l9 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
-               l10 {
+
+               pm8058_l10: l10 {
                        regulator-min-microvolt = <2600000>;
                        regulator-max-microvolt = <2600000>;
                        bias-pull-down;
                };
-               l11 {
+
+               pm8058_l11: l11 {
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
                        bias-pull-down;
                };
-               l12 {
+
+               pm8058_l12: l12 {
                        regulator-min-microvolt = <2900000>;
                        regulator-max-microvolt = <2900000>;
                        bias-pull-down;
                };
-               l13 {
+
+               pm8058_l13: l13 {
                        regulator-min-microvolt = <2050000>;
                        regulator-max-microvolt = <2050000>;
                        bias-pull-down;
                };
-               l14 {
+
+               pm8058_l14: l14 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                };
-               l15 {
+
+               pm8058_l15: l15 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                        bias-pull-down;
                };
-               l16 {
+
+               pm8058_l16: l16 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                        regulator-always-on;
                };
-               l17 {
+
+               pm8058_l17: l17 {
                        // 1.5V according to schematic
                        regulator-min-microvolt = <2600000>;
                        regulator-max-microvolt = <2600000>;
                        bias-pull-down;
                };
-               l18 {
+
+               pm8058_l18: l18 {
                        regulator-min-microvolt = <2200000>;
                        regulator-max-microvolt = <2200000>;
                        bias-pull-down;
                };
-               l19 {
+
+               pm8058_l19: l19 {
                        regulator-min-microvolt = <2500000>;
                        regulator-max-microvolt = <2500000>;
                        bias-pull-down;
                };
-               l20 {
+
+               pm8058_l20: l20 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
-               l21 {
+
+               pm8058_l21: l21 {
                        // 1.1 V according to schematic
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                        regulator-always-on;
                };
-               l22 {
+
+               pm8058_l22: l22 {
                        // 1.2 V according to schematic
                        regulator-min-microvolt = <1150000>;
                        regulator-max-microvolt = <1150000>;
                        bias-pull-down;
                };
-               l23 {
+
+               pm8058_l23: l23 {
                        // Unused
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
-               l24 {
+
+               pm8058_l24: l24 {
                        // Unused
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
-               l25 {
+
+               pm8058_l25: l25 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
 
-               s0 {
+               pm8058_s0: s0 {
                        // regulator-min-microvolt = <500000>;
                        // regulator-max-microvolt = <1325000>;
                        regulator-min-microvolt = <1100000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
-               s1 {
+
+               pm8058_s1: s1 {
                        // regulator-min-microvolt = <500000>;
                        // regulator-max-microvolt = <1250000>;
                        regulator-min-microvolt = <1100000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
-               s2 {
+
+               pm8058_s2: s2 {
                        // 1.3 V according to schematic
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1400000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
-               s3 {
+
+               pm8058_s3: s3 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <1600000>;
                        regulator-always-on;
                        bias-pull-down;
                };
-               s4 {
+
+               pm8058_s4: s4 {
                        regulator-min-microvolt = <2200000>;
                        regulator-max-microvolt = <2200000>;
                        qcom,switch-mode-frequency = <1600000>;
                };
 
                /* LVS0 and LVS1 are just switches */
-               lvs0 {
+               pm8058_lvs0: lvs0 {
                        bias-pull-down;
                };
-               lvs1 {
+
+               pm8058_lvs1: lvs1 {
                        bias-pull-down;
                };
 
-               ncp {
+               pm8058_ncp: ncp {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <1600000>;
        };
 };
 
-&xoadc {
+&pm8058_xoadc {
        /* Reference voltage 2.2 V */
        xoadc-ref-supply = <&pm8058_l18>;
 
        /* Board-specific channels */
-       mpp5@5 {
+       adc-channel@5 {
                /* Connected to AOUT of ALS sensor */
                reg = <0x00 0x05>;
        };
-       mpp6@6 {
+
+       adc-channel@6 {
                /* Connected to test point TP43 */
                reg = <0x00 0x06>;
        };
-       mpp7@7 {
+
+       adc-channel@7 {
                /* Connected to battery thermistor */
                reg = <0x00 0x07>;
        };
-       mpp8@8 {
+
+       adc-channel@8 {
                /* Connected to battery ID detector */
                reg = <0x00 0x08>;
        };
-       mpp9@9 {
+
+       adc-channel@9 {
                /* Connected to XO thermistor */
                reg = <0x00 0x09>;
        };
index c0dd6399f597a759f80b79f043b952bb70db464c..d460743fbb9401331d719e6a5e2fcf278d3744fb 100644 (file)
@@ -1,8 +1,12 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-apq8064-v2.0.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+#include "qcom-apq8064-v2.0.dtsi"
+#include "pm8821.dtsi"
+#include "pm8921.dtsi"
+
 / {
        model = "Asus Nexus7(flo)";
        compatible = "asus,nexus7-flo", "qcom,apq8064";
        status = "okay";
 };
 
-/* eMMC */
-&sdcc1 {
-       vmmc-supply = <&pm8921_l5>;
-       vqmmc-supply = <&pm8921_s4>;
-       status = "okay";
-};
-
 &mdp_dsi1_out {
        remote-endpoint = <&dsi0_in>;
 };
 
+&pm8821 {
+       interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8921 {
+       interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &rpm {
        regulators {
+               compatible = "qcom,rpm-pm8921-regulators";
+
                vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
                vin_lvs1_3_6-supply = <&pm8921_s4>;
                vin_lvs4_5_7-supply = <&pm8921_s4>;
 
-
                vdd_l24-supply = <&pm8921_s1>;
                vdd_l25-supply = <&pm8921_s1>;
                vin_lvs2-supply = <&pm8921_s1>;
                vdd_ncp-supply = <&pm8921_l6>;
 
                /* Buck SMPS */
-               s1 {
+               pm8921_s1: s1 {
                        regulator-always-on;
                        regulator-min-microvolt = <1225000>;
                        regulator-max-microvolt = <1225000>;
                };
 
                /* msm otg HSUSB_VDDCX */
-               s3 {
+               pm8921_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1150000>;
                        qcom,switch-mode-frequency = <4800000>;
                 * tabla2x-slim-CDC_VDD_CP
                 * tabla2x-slim-VDDIO_CDC
                 */
-               s4 {
+               pm8921_s4: s4 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <3200000>;
                        regulator-always-on;
                };
 
-               s7 {
+               pm8921_s7: s7 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
                /* mipi_dsi.1-dsi1_pll_vdda */
-               l2 {
+               pm8921_l2: l2 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        regulator-always-on;
                };
 
                /* msm_otg-HSUSB_3p3 */
-               l3 {
+               pm8921_l3: l3 {
                        regulator-min-microvolt = <3075000>;
                        regulator-max-microvolt = <3075000>;
                        bias-pull-down;
                };
 
                /* msm_otg-HSUSB_1p8 */
-               l4 {
+               pm8921_l4: l4 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
                /* msm_sdcc.1-sdc_vdd */
-               l5 {
+               pm8921_l5: l5 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
                        regulator-always-on;
                        bias-pull-down;
                };
 
-               l6 {
+               pm8921_l6: l6 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
                };
 
+               pm8921_l8: l8 {
+               };
+
                /* mipi_dsi.1-dsi1_avdd */
-               l11 {
+               pm8921_l11: l11 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3000000>;
                        bias-pull-down;
                };
 
                /* pwm_power for backlight */
-               l17 {
+               pm8921_l17: l17 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3000000>;
                        regulator-always-on;
                };
 
                /* camera, qdsp6 */
-               l23 {
+               pm8921_l23: l23 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                 * tabla2x-slim-CDC_VDDA_A_1P2V
                 * tabla2x-slim-VDDD_CDC_D
                 */
-               l25 {
+               pm8921_l25: l25 {
                        regulator-min-microvolt = <1250000>;
                        regulator-max-microvolt = <1250000>;
                        bias-pull-down;
                };
 
-               lvs1 {
+               pm8921_lvs1: lvs1 {
                        bias-pull-down;
                };
 
-               lvs4 {
+               pm8921_lvs4: lvs4 {
                        bias-pull-down;
                };
 
-               lvs5 {
+               pm8921_lvs5: lvs5 {
                        bias-pull-down;
                };
 
-               lvs6 {
+               pm8921_lvs6: lvs6 {
                        bias-pull-down;
                };
                /*
                 * mipi_dsi.1-dsi1_vddio
                 * pil_riva-pll_vdd
                 */
-               lvs7 {
+               pm8921_lvs7: lvs7 {
                        bias-pull-down;
                };
        };
 };
 
+/* eMMC */
+&sdcc1 {
+       vmmc-supply = <&pm8921_l5>;
+       vqmmc-supply = <&pm8921_s4>;
+       status = "okay";
+};
+
 &usb_hs1_phy {
        v3p3-supply = <&pm8921_l3>;
        v1p8-supply = <&pm8921_l4>;
index d6ecfd8addb7ae32ad71ee09961815d994721883..671d58cc2741b04d369c589558793637dcd119c4 100644 (file)
@@ -1,8 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-apq8064-v2.0.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
+#include "qcom-apq8064-v2.0.dtsi"
+#include "pm8821.dtsi"
+#include "pm8921.dtsi"
+
 / {
        model = "CompuLab CM-QS600";
        compatible = "qcom,apq8064-cm-qs600", "qcom,apq8064";
        status = "okay";
 };
 
+&pm8821 {
+       interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8921 {
+       interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &pm8921_gpio {
        wlan_default_gpios: wlan-gpios-state {
                pinconf {
@@ -82,6 +93,8 @@
 
 &rpm {
        regulators {
+               compatible = "qcom,rpm-pm8921-regulators";
+
                vin_lvs1_3_6-supply = <&pm8921_s4>;
                vin_lvs2-supply = <&pm8921_s1>;
                vin_lvs4_5_7-supply = <&pm8921_s4>;
                vdd_l27-supply = <&pm8921_s7>;
                vdd_l28-supply = <&pm8921_s7>;
 
-
                /* Buck SMPS */
-               s1 {
+               pm8921_s1: s1 {
                        regulator-always-on;
                        regulator-min-microvolt = <1225000>;
                        regulator-max-microvolt = <1225000>;
                        bias-pull-down;
                };
 
-               s3 {
+               pm8921_s3: s3 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1400000>;
                        qcom,switch-mode-frequency = <4800000>;
                };
 
-               s4 {
+               pm8921_s4: s4 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
-               s7 {
+               pm8921_s7: s7 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
-               l3 {
+               pm8921_l3: l3 {
                        regulator-min-microvolt = <3050000>;
                        regulator-max-microvolt = <3300000>;
                        bias-pull-down;
                };
 
-               l4 {
+               pm8921_l4: l4 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
-               l5 {
+               pm8921_l5: l5 {
                        regulator-min-microvolt = <2750000>;
                        regulator-max-microvolt = <3000000>;
                        bias-pull-down;
                };
 
-               l23 {
+               pm8921_l23: l23 {
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        bias-pull-down;
                };
 
-               lvs6 {
+               pm8921_lvs6: lvs6 {
                        bias-pull-down;
                };
-
        };
 };
 
index b0c5e7bd5e74e1fac69674b7bb9662f6eb0a4170..ed86b24119c97f133096c8a67595222d978eae43 100644 (file)
@@ -1,9 +1,12 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-apq8064-v2.0.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
+#include "qcom-apq8064-v2.0.dtsi"
+#include "pm8821.dtsi"
+#include "pm8921.dtsi"
+
 / {
        model = "Qualcomm APQ8064/IFC6410";
        compatible = "qcom,apq8064-ifc6410", "qcom,apq8064";
        perst-gpios = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
 };
 
+&pm8821 {
+       interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8921 {
+       interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &pm8921_gpio {
        wlan_default_gpios: wlan-gpios-state {
                pinconf {
 
 &rpm {
        regulators {
+               compatible = "qcom,rpm-pm8921-regulators";
+
                vin_lvs1_3_6-supply = <&pm8921_s4>;
                vin_lvs2-supply = <&pm8921_s1>;
                vin_lvs4_5_7-supply = <&pm8921_s4>;
                vdd_l27-supply = <&pm8921_s7>;
                vdd_l28-supply = <&pm8921_s7>;
 
-
                /* Buck SMPS */
-               s1 {
+               pm8921_s1: s1 {
                        regulator-always-on;
                        regulator-min-microvolt = <1225000>;
                        regulator-max-microvolt = <1225000>;
                        bias-pull-down;
                };
 
-               s3 {
+               pm8921_s3: s3 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1400000>;
                        qcom,switch-mode-frequency = <4800000>;
                };
 
-               s4 {
+               pm8921_s4: s4 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
-               s7 {
+               pm8921_s7: s7 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
-               l3 {
+               pm8921_l3: l3 {
                        regulator-min-microvolt = <3050000>;
                        regulator-max-microvolt = <3300000>;
                        bias-pull-down;
                };
 
-               l4 {
+               pm8921_l4: l4 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
-               l5 {
+               pm8921_l5: l5 {
                        regulator-min-microvolt = <2750000>;
                        regulator-max-microvolt = <3000000>;
                        bias-pull-down;
                };
 
-               l6 {
+               pm8921_l6: l6 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
                        bias-pull-down;
                };
 
-               l23 {
+               pm8921_l23: l23 {
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        bias-pull-down;
                };
 
-               lvs1 {
+               pm8921_lvs1: lvs1 {
+                       bias-pull-down;
+               };
+
+               pm8921_lvs6: lvs6 {
                        bias-pull-down;
                };
 
-               lvs6 {
+               pm8921_hdmi_switch: hdmi-switch {
                        bias-pull-down;
                };
        };
index 9244512b74d1e1da1a5f50ed776ec564d43afc25..2412aa3e3e8dbabbce398fbc706048818b37556b 100644 (file)
@@ -1,10 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-apq8064-v2.0.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/mfd/qcom-rpm.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
+#include "qcom-apq8064-v2.0.dtsi"
+#include "pm8821.dtsi"
+#include "pm8921.dtsi"
+
 / {
        model = "Sony Xperia Z";
        compatible = "sony,xperia-yuga", "qcom,apq8064";
        status = "okay";
 };
 
+&pm8821 {
+       interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8921 {
+       interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &pm8921_gpio {
        gpio_keys_pin_a: gpio-keys-active-state {
                pins = "gpio3", "gpio4", "gpio29", "gpio35";
 &riva {
        pinctrl-names = "default";
        pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>;
+
+       vddcx-supply = <&pm8921_s3>;
+       vddmx-supply = <&pm8921_l24>;
+       vddpx-supply = <&pm8921_s4>;
+
        status = "okay";
+
+       iris {
+               vddxo-supply = <&pm8921_l4>;
+               vddrfa-supply = <&pm8921_s2>;
+               vddpa-supply = <&pm8921_l10>;
+               vdddig-supply = <&pm8921_lvs2>;
+       };
 };
 
 &rpm {
        regulators {
+               compatible = "qcom,rpm-pm8921-regulators";
+
                vin_l1_l2_l12_l18-supply = <&pm8921_s4>;
                vin_lvs_1_3_6-supply = <&pm8921_s4>;
                vin_lvs_4_5_7-supply = <&pm8921_s4>;
                vin_l28-supply = <&pm8921_s7>;
 
                /* Buck SMPS */
-               s1 {
+               pm8921_s1: s1 {
                        regulator-always-on;
                        regulator-min-microvolt = <1225000>;
                        regulator-max-microvolt = <1225000>;
                        bias-pull-down;
                };
 
-               s2 {
+               pm8921_s2: s2 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <1600000>;
                        bias-pull-down;
                };
 
-               s3 {
+               pm8921_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1150000>;
                        qcom,switch-mode-frequency = <4800000>;
                        bias-pull-down;
                };
 
-               s4 {
+               pm8921_s4: s4 {
                        regulator-always-on;
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
                };
 
-               s7 {
+               pm8921_s7: s7 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
                        qcom,switch-mode-frequency = <3200000>;
                };
 
-               s8 {
+               pm8921_s8: s8 {
                        regulator-min-microvolt = <2200000>;
                        regulator-max-microvolt = <2200000>;
                        qcom,switch-mode-frequency = <1600000>;
                };
 
                /* PMOS LDO */
-               l1 {
+               pm8921_l1: l1 {
                        regulator-always-on;
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1100000>;
                        bias-pull-down;
                };
 
-               l2 {
+               pm8921_l2: l2 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
 
-               l3 {
+               pm8921_l3: l3 {
                        regulator-min-microvolt = <3075000>;
                        regulator-max-microvolt = <3075000>;
                        bias-pull-down;
                };
 
-               l4 {
+               pm8921_l4: l4 {
                        regulator-always-on;
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
-               l5 {
+               pm8921_l5: l5 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
                        bias-pull-down;
                };
 
-               l6 {
+               pm8921_l6: l6 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
                        bias-pull-down;
                };
 
-               l7 {
+               pm8921_l7: l7 {
                        regulator-min-microvolt = <1850000>;
                        regulator-max-microvolt = <2950000>;
                        bias-pull-down;
                };
 
-               l8 {
+               pm8921_l8: l8 {
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        bias-pull-down;
                };
 
-               l9 {
+               pm8921_l9: l9 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3000000>;
                        bias-pull-down;
                };
 
-               l10 {
+               pm8921_l10: l10 {
                        regulator-min-microvolt = <2900000>;
                        regulator-max-microvolt = <2900000>;
                        bias-pull-down;
                };
 
-               l11 {
+               pm8921_l11: l11 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3000000>;
                        bias-pull-down;
                };
 
-               l12 {
+               pm8921_l12: l12 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
 
-               l14 {
+               pm8921_l14: l14 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
-               l15 {
+               pm8921_l15: l15 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2950000>;
                        bias-pull-down;
                };
 
-               l16 {
+               pm8921_l16: l16 {
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        bias-pull-down;
                };
 
-               l17 {
+               pm8921_l17: l17 {
                        regulator-min-microvolt = <2000000>;
                        regulator-max-microvolt = <2000000>;
                        bias-pull-down;
                };
 
-               l18 {
+               pm8921_l18: l18 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        bias-pull-down;
                };
 
-               l21 {
+               pm8921_l21: l21 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                        bias-pull-down;
                };
 
-               l22 {
+               pm8921_l22: l22 {
                        regulator-min-microvolt = <2600000>;
                        regulator-max-microvolt = <2600000>;
                        bias-pull-down;
                };
 
-               l23 {
+               pm8921_l23: l23 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        bias-pull-down;
                };
 
-               l24 {
+               pm8921_l24: l24 {
                        regulator-min-microvolt = <750000>;
                        regulator-max-microvolt = <1150000>;
                        bias-pull-down;
                };
 
-               l25 {
+               pm8921_l25: l25 {
                        regulator-always-on;
                        regulator-min-microvolt = <1250000>;
                        regulator-max-microvolt = <1250000>;
                        bias-pull-down;
                };
 
-               l27 {
+               pm8921_l27: l27 {
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1100000>;
                };
 
-               l28 {
+               pm8921_l28: l28 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                        bias-pull-down;
                };
 
-               l29 {
+               pm8921_l29: l29 {
                        regulator-min-microvolt = <2000000>;
                        regulator-max-microvolt = <2000000>;
                        bias-pull-down;
                };
 
                /* Low Voltage Switch */
-               lvs1 {
+               pm8921_lvs1: lvs1 {
                        bias-pull-down;
                };
 
-               lvs2 {
+               pm8921_lvs2: lvs2 {
                        bias-pull-down;
                };
 
-               lvs3 {
+               pm8921_lvs3: lvs3 {
                        bias-pull-down;
                };
 
-               lvs4 {
+               pm8921_lvs4: lvs4 {
                        bias-pull-down;
                };
 
-               lvs5 {
+               pm8921_lvs5: lvs5 {
                        bias-pull-down;
                };
 
-               lvs6 {
+               pm8921_lvs6: lvs6 {
                        bias-pull-down;
                };
 
-               lvs7 {
+               pm8921_lvs7: lvs7 {
                        bias-pull-down;
                };
 
-               usb-switch {};
+               pm8921_usb_switch: usb-switch {};
 
-               hdmi-switch {};
+               pm8921_hdmi_switch: hdmi-switch {
+                       bias-pull-down;
+               };
 
-               ncp {
+               pm8921_ncp: ncp {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        qcom,switch-mode-frequency = <1600000>;
index 59fd86b9fb471828668c1cef997775e01ee841c7..3faf57035d544d32d1ad4602a0c79f3e753bdc8a 100644 (file)
                };
        };
 
-
-       /*
-        * These channels from the ADC are simply hardware monitors.
-        * That is why the ADC is referred to as "HKADC" - HouseKeeping
-        * ADC.
-        */
-       iio-hwmon {
-               compatible = "iio-hwmon";
-               io-channels = <&xoadc 0x00 0x01>, /* Battery */
-                           <&xoadc 0x00 0x02>, /* DC in (charger) */
-                           <&xoadc 0x00 0x04>, /* VPH the main system voltage */
-                           <&xoadc 0x00 0x0b>, /* Die temperature */
-                           <&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
-                           <&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
-                           <&xoadc 0x00 0x0e>; /* Charger temperature */
-       };
-
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        clock-names = "core";
                };
 
-               ssbi@c00000 {
+               ssbi2: ssbi@c00000 {
                        compatible = "qcom,ssbi";
                        reg = <0x00c00000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
-
-                       pm8821: pmic {
-                               compatible = "qcom,pm8821";
-                               interrupt-parent = <&tlmm_pinmux>;
-                               interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
-                               #interrupt-cells = <2>;
-                               interrupt-controller;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pm8821_mpps: mpps@50 {
-                                       compatible = "qcom,pm8821-mpp", "qcom,ssbi-mpp";
-                                       reg = <0x50>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       gpio-ranges = <&pm8821_mpps 0 0 4>;
-                               };
-                       };
                };
 
-               ssbi@500000 {
+               ssbi: ssbi@500000 {
                        compatible = "qcom,ssbi";
                        reg = <0x00500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
-
-                       pmicintc: pmic {
-                               compatible = "qcom,pm8921";
-                               interrupt-parent = <&tlmm_pinmux>;
-                               interrupts = <74 8>;
-                               #interrupt-cells = <2>;
-                               interrupt-controller;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pm8921_gpio: gpio@150 {
-
-                                       compatible = "qcom,pm8921-gpio",
-                                                    "qcom,ssbi-gpio";
-                                       reg = <0x150>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       gpio-controller;
-                                       gpio-ranges = <&pm8921_gpio 0 0 44>;
-                                       #gpio-cells = <2>;
-
-                               };
-
-                               pm8921_mpps: mpps@50 {
-                                       compatible = "qcom,pm8921-mpp",
-                                                    "qcom,ssbi-mpp";
-                                       reg = <0x50>;
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       gpio-ranges = <&pm8921_mpps 0 0 12>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               rtc@11d {
-                                       compatible = "qcom,pm8921-rtc";
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <39 1>;
-                                       reg = <0x11d>;
-                                       allow-set-time;
-                               };
-
-                               pwrkey@1c {
-                                       compatible = "qcom,pm8921-pwrkey";
-                                       reg = <0x1c>;
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <50 1>, <51 1>;
-                                       debounce = <15625>;
-                                       pull-up;
-                               };
-
-                               xoadc: xoadc@197 {
-                                       compatible = "qcom,pm8921-adc";
-                                       reg = <197>;
-                                       interrupts-extended = <&pmicintc 78 IRQ_TYPE_EDGE_RISING>;
-                                       #address-cells = <2>;
-                                       #size-cells = <0>;
-                                       #io-channel-cells = <2>;
-
-                                       vcoin: adc-channel@0 {
-                                               reg = <0x00 0x00>;
-                                       };
-                                       vbat: adc-channel@1 {
-                                               reg = <0x00 0x01>;
-                                       };
-                                       dcin: adc-channel@2 {
-                                               reg = <0x00 0x02>;
-                                       };
-                                       vph_pwr: adc-channel@4 {
-                                               reg = <0x00 0x04>;
-                                       };
-                                       batt_therm: adc-channel@8 {
-                                               reg = <0x00 0x08>;
-                                       };
-                                       batt_id: adc-channel@9 {
-                                               reg = <0x00 0x09>;
-                                       };
-                                       usb_vbus: adc-channel@a {
-                                               reg = <0x00 0x0a>;
-                                       };
-                                       die_temp: adc-channel@b {
-                                               reg = <0x00 0x0b>;
-                                       };
-                                       ref_625mv: adc-channel@c {
-                                               reg = <0x00 0x0c>;
-                                       };
-                                       ref_1250mv: adc-channel@d {
-                                               reg = <0x00 0x0d>;
-                                       };
-                                       chg_temp: adc-channel@e {
-                                               reg = <0x00 0x0e>;
-                                       };
-                                       ref_muxoff: adc-channel@f {
-                                               reg = <0x00 0x0f>;
-                                       };
-                               };
-                       };
                };
 
                qfprom: qfprom@700000 {
                                clocks = <&pxo_board>, <&cxo_board>;
                                clock-names = "pxo", "cxo";
                        };
-
-                       regulators {
-                               compatible = "qcom,rpm-pm8921-regulators";
-
-                               pm8921_s1: s1 {};
-                               pm8921_s2: s2 {};
-                               pm8921_s3: s3 {};
-                               pm8921_s4: s4 {};
-                               pm8921_s7: s7 {};
-                               pm8921_s8: s8 {};
-
-                               pm8921_l1: l1 {};
-                               pm8921_l2: l2 {};
-                               pm8921_l3: l3 {};
-                               pm8921_l4: l4 {};
-                               pm8921_l5: l5 {};
-                               pm8921_l6: l6 {};
-                               pm8921_l7: l7 {};
-                               pm8921_l8: l8 {};
-                               pm8921_l9: l9 {};
-                               pm8921_l10: l10 {};
-                               pm8921_l11: l11 {};
-                               pm8921_l12: l12 {};
-                               pm8921_l14: l14 {};
-                               pm8921_l15: l15 {};
-                               pm8921_l16: l16 {};
-                               pm8921_l17: l17 {};
-                               pm8921_l18: l18 {};
-                               pm8921_l21: l21 {};
-                               pm8921_l22: l22 {};
-                               pm8921_l23: l23 {};
-                               pm8921_l24: l24 {};
-                               pm8921_l25: l25 {};
-                               pm8921_l26: l26 {};
-                               pm8921_l27: l27 {};
-                               pm8921_l28: l28 {};
-                               pm8921_l29: l29 {};
-
-                               pm8921_lvs1: lvs1 {};
-                               pm8921_lvs2: lvs2 {};
-                               pm8921_lvs3: lvs3 {};
-                               pm8921_lvs4: lvs4 {};
-                               pm8921_lvs5: lvs5 {};
-                               pm8921_lvs6: lvs6 {};
-                               pm8921_lvs7: lvs7 {};
-
-                               pm8921_usb_switch: usb-switch {};
-
-                               pm8921_hdmi_switch: hdmi-switch {
-                                       bias-pull-down;
-                               };
-
-                               pm8921_ncp: ncp {};
-                       };
                };
 
                usb1: usb@12500000 {
                        qcom,ncb = <3>;
                };
 
-               pcie: pci@1b500000 {
+               pcie: pcie@1b500000 {
                        compatible = "qcom,pcie-apq8064";
                        reg = <0x1b500000 0x1000>,
                              <0x1b502000 0x80>,
 
                        memory-region = <&wcnss_mem>;
 
-                       vddcx-supply = <&pm8921_s3>;
-                       vddmx-supply = <&pm8921_l24>;
-                       vddpx-supply = <&pm8921_s4>;
-
                        status = "disabled";
 
                        iris {
 
                                clocks = <&cxo_board>;
                                clock-names = "xo";
-
-                               vddxo-supply = <&pm8921_l4>;
-                               vddrfa-supply = <&pm8921_s2>;
-                               vddpa-supply = <&pm8921_l10>;
-                               vdddig-supply = <&pm8921_lvs2>;
                        };
 
                        smd-edge {
index 6d1b2439ae3ace4d7489258000bb610d2f72b967..6fce0112361f891eae4f1061a261add9176f024a 100644 (file)
@@ -4,8 +4,8 @@
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
 
 /delete-node/ &mpss_region;
 
                        no-map;
                };
        };
+
+       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;
+       };
 };
 
 &blsp1_uart2 {
        pinctrl-1 = <&sdc2_off>;
 };
 
+&smbb {
+       status = "okay";
+};
+
 &tlmm {
        sdc1_on: sdc1-on-state {
                clk-pins {
index 116e59a3b76d01e54306ced831dfbc2019b05754..1df24c922be9f3e9a2a56cb7edb2fa353c59860c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-apq8084.dtsi"
-#include "qcom-pma8084.dtsi"
+#include "pma8084.dtsi"
 
 / {
        model = "Qualcomm APQ8084/IFC6540";
index c6b6680248a69ee91fe2a102b7b9b5d7608ea6cb..d4e6aee034afd1e6a7f9b10b302351a756f819b8 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-apq8084.dtsi"
-#include "qcom-pma8084.dtsi"
+#include "pma8084.dtsi"
 
 / {
        model = "Qualcomm APQ 8084-MTP";
index 468ebc40d2ad383c222f6b9d9bffd8bfd8dabc0d..374af6dd360a72146071ec24b73b746adcacf636 100644 (file)
@@ -98,7 +98,7 @@
                        };
                };
 
-               pci@40000000 {
+               pcie@40000000 {
                        status = "okay";
                        perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
                };
index 9844e0b7cff99f490924ef51ccef03fbfa35c9b6..f989bd741cd185401dcfdfad23416d710faeed7d 100644 (file)
                };
 
                sdhci: mmc@7824900 {
-                       compatible = "qcom,sdhci-msm-v4";
+                       compatible = "qcom,ipq4019-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x7824900 0x11c>, <0x7824000 0x800>;
                        reg-names = "hc", "core";
                        interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0x4ab000 0x4>;
                };
 
-               pcie0: pci@40000000 {
+               pcie0: pcie@40000000 {
                        compatible = "qcom,pcie-ipq4019";
                        reg = <0x40000000 0xf1d>,
                              <0x40000f20 0xa8>,
index 6198f42f6a9c7f36c92148fb3e62af321e5f7b57..6a7f4dd0f775be4473eba87b140a6743c5f2d7fe 100644 (file)
                        };
                };
 
-               qcom,ssbi@500000 {
+               ssbi@500000 {
                        compatible = "qcom,ssbi";
                        reg = <0x00500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
                        status = "disabled";
                };
 
-               pcie0: pci@1b500000 {
+               pcie0: pcie@1b500000 {
                        compatible = "qcom,pcie-ipq8064";
                        reg = <0x1b500000 0x1000
                               0x1b502000 0x80
                        perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
                };
 
-               pcie1: pci@1b700000 {
+               pcie1: pcie@1b700000 {
                        compatible = "qcom,pcie-ipq8064";
                        reg = <0x1b700000 0x1000
                               0x1b702000 0x80
                        perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
                };
 
-               pcie2: pci@1b900000 {
+               pcie2: pcie@1b900000 {
                        compatible = "qcom,pcie-ipq8064";
                        reg = <0x1b900000 0x1000
                               0x1b902000 0x80
index b269fdca1460c8401bd595d8b58bc8e01b1c9607..e3b4b93c3d3861790ffabc3e2ca103061f5fc2dc 100644 (file)
@@ -6,11 +6,11 @@
  * Author : Neil Armstrong <narmstrong@baylibre.com>
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 #include "qcom-mdm9615-wp8548.dtsi"
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "MangOH Green with WP8548 Module";
index 92c8003dac252d6707606146071aafab89a28d0d..0dd52cac0e2e27cdd4d27106933b93616cd02b73 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "qcom-mdm9615.dtsi"
+#include "pm8018.dtsi"
 
 / {
        model = "Sierra Wireless WP8548 Module";
        };
 };
 
-&pmicgpio {
+&pm8018 {
+       interrupts-extended = <&intc GIC_PPI 226 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&pm8018_gpio {
        usb_vbus_5v_pins: usb-vbus-5v-state {
                pins = "gpio4";
                function = "normal";
        pinctrl-names = "default";
 };
 
+&rpm {
+       regulators {
+               compatible = "qcom,rpm-pm8018-regulators";
+
+               vin_lvs1-supply = <&pm8018_s3>;
+
+               vdd_l7-supply = <&pm8018_s4>;
+               vdd_l8-supply = <&pm8018_s3>;
+               vdd_l9_l10_l11_l12-supply = <&pm8018_s5>;
+
+               /* Buck SMPS */
+               pm8018_s1: s1 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1150000>;
+                       qcom,switch-mode-frequency = <1600000>;
+                       bias-pull-down;
+               };
+
+               pm8018_s2: s2 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1300000>;
+                       qcom,switch-mode-frequency = <1600000>;
+                       bias-pull-down;
+               };
+
+               pm8018_s3: s3 {
+                       regulator-always-on;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       qcom,switch-mode-frequency = <1600000>;
+                       bias-pull-down;
+               };
+
+               pm8018_s4: s4 {
+                       regulator-min-microvolt = <2100000>;
+                       regulator-max-microvolt = <2200000>;
+                       qcom,switch-mode-frequency = <1600000>;
+                       bias-pull-down;
+               };
+
+               pm8018_s5: s5 {
+                       regulator-always-on;
+                       regulator-min-microvolt = <1350000>;
+                       regulator-max-microvolt = <1350000>;
+                       qcom,switch-mode-frequency = <1600000>;
+                       bias-pull-down;
+               };
+
+               /* PMOS LDO */
+               pm8018_l2: l2 {
+                       regulator-always-on;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l3: l3 {
+                       regulator-always-on;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l4: l4 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l5: l5 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2850000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1900000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l8: l8 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l9: l9 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1150000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l10: l10 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l11: l11 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l12: l12 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l13: l13 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <2950000>;
+                       bias-pull-down;
+               };
+
+               pm8018_l14: l14 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+                       bias-pull-down;
+               };
+
+               /* Low Voltage Switch */
+               pm8018_lvs1: lvs1 {
+                       bias-pull-down;
+               };
+       };
+};
+
 &sdcc1 {
        status = "okay";
 };
index 63e21aa236429260993dfa75dde9ed7de63eb68b..34c60994d0263415718ea957cc80edb08849726e 100644 (file)
                        };
                };
 
-               qcom,ssbi@500000 {
+               ssbi: ssbi@500000 {
                        compatible = "qcom,ssbi";
                        reg = <0x500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
-
-                       pmicintc: pmic {
-                               compatible = "qcom,pm8018", "qcom,pm8921";
-                               interrupts = <GIC_PPI 226 IRQ_TYPE_LEVEL_HIGH>;
-                               #interrupt-cells = <2>;
-                               interrupt-controller;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pwrkey@1c {
-                                       compatible = "qcom,pm8018-pwrkey", "qcom,pm8921-pwrkey";
-                                       reg = <0x1c>;
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <50 IRQ_TYPE_EDGE_RISING>,
-                                                    <51 IRQ_TYPE_EDGE_RISING>;
-                                       debounce = <15625>;
-                                       pull-up;
-                               };
-
-                               pmicmpp: mpps@50 {
-                                       compatible = "qcom,pm8018-mpp", "qcom,ssbi-mpp";
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       reg = <0x50>;
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       gpio-ranges = <&pmicmpp 0 0 6>;
-                               };
-
-                               rtc@11d {
-                                       compatible = "qcom,pm8018-rtc", "qcom,pm8921-rtc";
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <39 IRQ_TYPE_EDGE_RISING>;
-                                       reg = <0x11d>;
-                                       allow-set-time;
-                               };
-
-                               pmicgpio: gpio@150 {
-                                       compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio";
-                                       reg = <0x150>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       gpio-controller;
-                                       gpio-ranges = <&pmicgpio 0 0 6>;
-                                       #gpio-cells = <2>;
-                               };
-                       };
                };
 
                sdcc1bam: dma-controller@12182000 {
                                     <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "ack", "err", "wakeup";
-
-                       regulators {
-                               compatible = "qcom,rpm-pm8018-regulators";
-
-                               vin_lvs1-supply = <&pm8018_s3>;
-
-                               vdd_l7-supply = <&pm8018_s4>;
-                               vdd_l8-supply = <&pm8018_s3>;
-                               vdd_l9_l10_l11_l12-supply = <&pm8018_s5>;
-
-                               /* Buck SMPS */
-                               pm8018_s1: s1 {
-                                       regulator-min-microvolt = <500000>;
-                                       regulator-max-microvolt = <1150000>;
-                                       qcom,switch-mode-frequency = <1600000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_s2: s2 {
-                                       regulator-min-microvolt = <1225000>;
-                                       regulator-max-microvolt = <1300000>;
-                                       qcom,switch-mode-frequency = <1600000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_s3: s3 {
-                                       regulator-always-on;
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       qcom,switch-mode-frequency = <1600000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_s4: s4 {
-                                       regulator-min-microvolt = <2100000>;
-                                       regulator-max-microvolt = <2200000>;
-                                       qcom,switch-mode-frequency = <1600000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_s5: s5 {
-                                       regulator-always-on;
-                                       regulator-min-microvolt = <1350000>;
-                                       regulator-max-microvolt = <1350000>;
-                                       qcom,switch-mode-frequency = <1600000>;
-                                       bias-pull-down;
-                               };
-
-                               /* PMOS LDO */
-                               pm8018_l2: l2 {
-                                       regulator-always-on;
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l3: l3 {
-                                       regulator-always-on;
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l4: l4 {
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l5: l5 {
-                                       regulator-min-microvolt = <2850000>;
-                                       regulator-max-microvolt = <2850000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l6: l6 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <2850000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l7: l7 {
-                                       regulator-min-microvolt = <1850000>;
-                                       regulator-max-microvolt = <1900000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l8: l8 {
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l9: l9 {
-                                       regulator-min-microvolt = <750000>;
-                                       regulator-max-microvolt = <1150000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l10: l10 {
-                                       regulator-min-microvolt = <1050000>;
-                                       regulator-max-microvolt = <1050000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l11: l11 {
-                                       regulator-min-microvolt = <1050000>;
-                                       regulator-max-microvolt = <1050000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l12: l12 {
-                                       regulator-min-microvolt = <1050000>;
-                                       regulator-max-microvolt = <1050000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l13: l13 {
-                                       regulator-min-microvolt = <1850000>;
-                                       regulator-max-microvolt = <2950000>;
-                                       bias-pull-down;
-                               };
-
-                               pm8018_l14: l14 {
-                                       regulator-min-microvolt = <2850000>;
-                                       regulator-max-microvolt = <2850000>;
-                                       bias-pull-down;
-                               };
-
-                               /* Low Voltage Switch */
-                               pm8018_lvs1: lvs1 {
-                                       bias-pull-down;
-                               };
-                       };
                };
        };
 };
diff --git a/src/arm/qcom/qcom-msm8226-microsoft-common.dtsi b/src/arm/qcom/qcom-msm8226-microsoft-common.dtsi
new file mode 100644 (file)
index 0000000..525d8c6
--- /dev/null
@@ -0,0 +1,327 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Common Board Device Tree for Microsoft MSM8x26-based Lumias
+ *
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+#include <dt-bindings/input/input.h>
+
+/*
+ * Delete all generic (msm8226.dtsi) reserved
+ * memory mappings which are different on these devices.
+ */
+/delete-node/ &smem_region;
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* microSD */
+               display0 = &framebuffer;
+       };
+
+       chosen {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               stdout-path = "display0";
+
+               framebuffer: framebuffer@3200000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x3200000 0x800000>;
+                       format = "a8r8g8b8";
+                       width = <720>;
+                       height = <1280>;
+                       stride = <(720 * 4)>;
+
+                       clocks = <&mmcc MDSS_AHB_CLK>,
+                                <&mmcc MDSS_AXI_CLK>,
+                                <&mmcc MDSS_BYTE0_CLK>,
+                                <&mmcc MDSS_MDP_CLK>,
+                                <&mmcc MDSS_PCLK0_CLK>,
+                                <&mmcc MDSS_VSYNC_CLK>;
+                       power-domains = <&mmcc MDSS_GDSC>;
+               };
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       /*
+        * This device being a WP platform has a different
+        * memory layout than other Android based devices.
+        * This smem memory region is directly copied from
+        * the original UEFI firmware.
+        */
+       reserved-memory {
+               display_reserved: framebuffer@3200000 {
+                       reg = <0x03200000 0x800000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+       };
+};
+
+&blsp1_i2c5 {
+       status = "okay";
+
+       touchscreen: touchscreen@4b {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x4b>;
+
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l15>;
+               vio-supply = <&pm8226_l6>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x01>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_uart3 {
+       status = "okay";
+};
+
+&pm8226_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pm8226_vib {
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               /* These values were taken from the original firmware DSDT */
+               pm8226_s1: s1 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               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 = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               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 = <1850000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2075000>;
+               };
+
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <2000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8226_l18>;
+       vqmmc-supply = <&pm8226_l21>;
+
+       status = "okay";
+};
+
+&usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
+
+&tlmm {
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio106", "gpio107", "gpio108";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       touchscreen_default: touchscreen-default-state {
+               irq-pins {
+                       pins = "gpio17";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+
+               reset-pins {
+                       pins = "gpio16";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+                       output-high;
+               };
+       };
+};
diff --git a/src/arm/qcom/qcom-msm8226-microsoft-dempsey.dts b/src/arm/qcom/qcom-msm8226-microsoft-dempsey.dts
new file mode 100644 (file)
index 0000000..2c664b5
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226-microsoft-common.dtsi"
+
+/ {
+       model = "Microsoft Lumia 640";
+       compatible = "microsoft,dempsey", "qcom,msm8226";
+       chassis-type = "handset";
+};
diff --git a/src/arm/qcom/qcom-msm8226-microsoft-makepeace.dts b/src/arm/qcom/qcom-msm8226-microsoft-makepeace.dts
new file mode 100644 (file)
index 0000000..731c5c3
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226-microsoft-common.dtsi"
+
+/ {
+       model = "Microsoft Lumia 640 XL";
+       compatible = "microsoft,makepeace", "qcom,msm8226";
+       chassis-type = "handset";
+};
diff --git a/src/arm/qcom/qcom-msm8226-microsoft-moneypenny.dts b/src/arm/qcom/qcom-msm8226-microsoft-moneypenny.dts
new file mode 100644 (file)
index 0000000..992b711
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226-microsoft-common.dtsi"
+
+/ {
+       model = "Nokia Lumia 630";
+       compatible = "microsoft,moneypenny", "qcom,msm8226";
+       chassis-type = "handset";
+};
+
+&framebuffer {
+       width = <480>;
+       height = <854>;
+       stride = <(480 * 4)>;
+};
index 97a377b5a0ecaf197794135e8af69a70a044513a..b492c95e5d301d25d6e9446081940bcb52a94569 100644 (file)
                                 <&gcc GPLL0_VOTE>,
                                 <&gcc GPLL1_VOTE>,
                                 <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
-                                <0>,
-                                <0>;
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi0_phy 0>;
                        clock-names = "xo",
                                      "mmss_gpll0_vote",
                                      "gpll0_vote",
                                offset = <0x65c>;
 
                                mode-bootloader = <0x77665500>;
-                               mode-normal     = <0x77665501>;
-                               mode-recovery   = <0x77665502>;
+                               mode-normal = <0x77665501>;
+                               mode-recovery = <0x77665502>;
                        };
                };
 
                                              "ref";
                        };
                };
+
+               gpu: adreno@fdb00000 {
+                       compatible = "qcom,adreno-305.18", "qcom,adreno";
+                       reg = <0xfdb00000 0x10000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+
+                       clocks = <&mmcc OXILI_GFX3D_CLK>,
+                                <&mmcc OXILICX_AHB_CLK>,
+                                <&mmcc OXILICX_AXI_CLK>;
+                       clock-names = "core", "iface", "mem_iface";
+
+                       sram = <&gmu_sram>;
+                       power-domains = <&mmcc OXILICX_GDSC>;
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       status = "disabled";
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-450000000 {
+                                       opp-hz = /bits/ 64 <450000000>;
+                               };
+
+                               opp-320000000 {
+                                       opp-hz = /bits/ 64 <320000000>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                               };
+
+                               opp-19000000 {
+                                       opp-hz = /bits/ 64 <19000000>;
+                               };
+                       };
+               };
        };
 
        thermal-zones {
index be18f1be29a17c2b4f90565afd12bbd756011acd..69fe651f564d254be712adb1c9046701937c38a9 100644 (file)
@@ -2,6 +2,7 @@
 #include <dt-bindings/input/input.h>
 
 #include "qcom-msm8660.dtsi"
+#include "pm8058.dtsi"
 
 / {
        model = "Qualcomm MSM8660 SURF";
 };
 
 &pm8058 {
-       keypad@148 {
-               linux,keymap = <
-                       MATRIX_KEY(0, 0, KEY_FN_F1)
-                       MATRIX_KEY(0, 1, KEY_UP)
-                       MATRIX_KEY(0, 2, KEY_LEFT)
-                       MATRIX_KEY(0, 3, KEY_VOLUMEUP)
-                       MATRIX_KEY(1, 0, KEY_FN_F2)
-                       MATRIX_KEY(1, 1, KEY_RIGHT)
-                       MATRIX_KEY(1, 2, KEY_DOWN)
-                       MATRIX_KEY(1, 3, KEY_VOLUMEDOWN)
-                       MATRIX_KEY(2, 3, KEY_ENTER)
-                       MATRIX_KEY(4, 0, KEY_CAMERA_FOCUS)
-                       MATRIX_KEY(4, 1, KEY_UP)
-                       MATRIX_KEY(4, 2, KEY_LEFT)
-                       MATRIX_KEY(4, 3, KEY_HOME)
-                       MATRIX_KEY(4, 4, KEY_FN_F3)
-                       MATRIX_KEY(5, 0, KEY_CAMERA)
-                       MATRIX_KEY(5, 1, KEY_RIGHT)
-                       MATRIX_KEY(5, 2, KEY_DOWN)
-                       MATRIX_KEY(5, 3, KEY_BACK)
-                       MATRIX_KEY(5, 4, KEY_MENU)
-                       >;
-               keypad,num-rows = <6>;
-               keypad,num-columns = <5>;
+       interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8058_keypad {
+       linux,keymap = <
+               MATRIX_KEY(0, 0, KEY_FN_F1)
+               MATRIX_KEY(0, 1, KEY_UP)
+               MATRIX_KEY(0, 2, KEY_LEFT)
+               MATRIX_KEY(0, 3, KEY_VOLUMEUP)
+               MATRIX_KEY(1, 0, KEY_FN_F2)
+               MATRIX_KEY(1, 1, KEY_RIGHT)
+               MATRIX_KEY(1, 2, KEY_DOWN)
+               MATRIX_KEY(1, 3, KEY_VOLUMEDOWN)
+               MATRIX_KEY(2, 3, KEY_ENTER)
+               MATRIX_KEY(4, 0, KEY_CAMERA_FOCUS)
+               MATRIX_KEY(4, 1, KEY_UP)
+               MATRIX_KEY(4, 2, KEY_LEFT)
+               MATRIX_KEY(4, 3, KEY_HOME)
+               MATRIX_KEY(4, 4, KEY_FN_F3)
+               MATRIX_KEY(5, 0, KEY_CAMERA)
+               MATRIX_KEY(5, 1, KEY_RIGHT)
+               MATRIX_KEY(5, 2, KEY_DOWN)
+               MATRIX_KEY(5, 3, KEY_BACK)
+               MATRIX_KEY(5, 4, KEY_MENU)
+               >;
+       keypad,num-rows = <6>;
+       keypad,num-columns = <5>;
+};
+
+&rpm {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8901-regulators";
+       };
+
+       regulators-1 {
+               compatible = "qcom,rpm-pm8058-regulators";
        };
 };
 
index 78023ed2fdf71f5168692d43a8b9d80573666545..a7c245b9c8f973c27472196ffb7ddf76a1a17670 100644 (file)
                };
        };
 
-       /*
-        * These channels from the ADC are simply hardware monitors.
-        * That is why the ADC is referred to as "HKADC" - HouseKeeping
-        * ADC.
-        */
-       iio-hwmon {
-               compatible = "iio-hwmon";
-               io-channels = <&xoadc 0x00 0x01>, /* Battery */
-                           <&xoadc 0x00 0x02>, /* DC in (charger) */
-                           <&xoadc 0x00 0x04>, /* VPH the main system voltage */
-                           <&xoadc 0x00 0x0b>, /* Die temperature */
-                           <&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
-                           <&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
-                           <&xoadc 0x00 0x0e>; /* Reference voltage 0.325V */
-       };
-
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        status = "disabled";
                };
 
-               ssbi@500000 {
+               ssbi: ssbi@500000 {
                        compatible = "qcom,ssbi";
                        reg = <0x500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
-
-                       pm8058: pmic {
-                               compatible = "qcom,pm8058";
-                               interrupt-parent = <&tlmm>;
-                               interrupts = <88 8>;
-                               #interrupt-cells = <2>;
-                               interrupt-controller;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pm8058_gpio: gpio@150 {
-                                       compatible = "qcom,pm8058-gpio",
-                                                    "qcom,ssbi-gpio";
-                                       reg = <0x150>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       gpio-controller;
-                                       gpio-ranges = <&pm8058_gpio 0 0 44>;
-                                       #gpio-cells = <2>;
-
-                               };
-
-                               pm8058_mpps: mpps@50 {
-                                       compatible = "qcom,pm8058-mpp",
-                                                    "qcom,ssbi-mpp";
-                                       reg = <0x50>;
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       gpio-ranges = <&pm8058_mpps 0 0 12>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               pwrkey@1c {
-                                       compatible = "qcom,pm8058-pwrkey";
-                                       reg = <0x1c>;
-                                       interrupt-parent = <&pm8058>;
-                                       interrupts = <50 1>, <51 1>;
-                                       debounce = <15625>;
-                                       pull-up;
-                               };
-
-                               pm8058_keypad: keypad@148 {
-                                       compatible = "qcom,pm8058-keypad";
-                                       reg = <0x148>;
-                                       interrupt-parent = <&pm8058>;
-                                       interrupts = <74 1>, <75 1>;
-                                       debounce = <15>;
-                                       scan-delay = <32>;
-                                       row-hold = <91500>;
-                               };
-
-                               xoadc: xoadc@197 {
-                                       compatible = "qcom,pm8058-adc";
-                                       reg = <0x197>;
-                                       interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>;
-                                       #address-cells = <2>;
-                                       #size-cells = <0>;
-                                       #io-channel-cells = <2>;
-
-                                       vcoin: adc-channel@0 {
-                                               reg = <0x00 0x00>;
-                                       };
-                                       vbat: adc-channel@1 {
-                                               reg = <0x00 0x01>;
-                                       };
-                                       dcin: adc-channel@2 {
-                                               reg = <0x00 0x02>;
-                                       };
-                                       ichg: adc-channel@3 {
-                                               reg = <0x00 0x03>;
-                                       };
-                                       vph_pwr: adc-channel@4 {
-                                               reg = <0x00 0x04>;
-                                       };
-                                       usb_vbus: adc-channel@a {
-                                               reg = <0x00 0x0a>;
-                                       };
-                                       die_temp: adc-channel@b {
-                                               reg = <0x00 0x0b>;
-                                       };
-                                       ref_625mv: adc-channel@c {
-                                               reg = <0x00 0x0c>;
-                                       };
-                                       ref_1250mv: adc-channel@d {
-                                               reg = <0x00 0x0d>;
-                                       };
-                                       ref_325mv: adc-channel@e {
-                                               reg = <0x00 0x0e>;
-                                       };
-                                       ref_muxoff: adc-channel@f {
-                                               reg = <0x00 0x0f>;
-                                       };
-                               };
-
-                               rtc@1e8 {
-                                       compatible = "qcom,pm8058-rtc";
-                                       reg = <0x1e8>;
-                                       interrupt-parent = <&pm8058>;
-                                       interrupts = <39 1>;
-                                       allow-set-time;
-                               };
-
-                               vibrator@4a {
-                                       compatible = "qcom,pm8058-vib";
-                                       reg = <0x4a>;
-                               };
-
-                               pm8058_led48: led@48 {
-                                       compatible = "qcom,pm8058-keypad-led";
-                                       reg = <0x48>;
-                                       status = "disabled";
-                               };
-
-                               pm8058_led131: led@131 {
-                                       compatible = "qcom,pm8058-led";
-                                       reg = <0x131>;
-                                       status = "disabled";
-                               };
-
-                               pm8058_led132: led@132 {
-                                       compatible = "qcom,pm8058-led";
-                                       reg = <0x132>;
-                                       status = "disabled";
-                               };
-
-                               pm8058_led133: led@133 {
-                                       compatible = "qcom,pm8058-led";
-                                       reg = <0x133>;
-                                       status = "disabled";
-                               };
-
-                       };
                };
 
                l2cc: clock-controller@2082000 {
                                clocks = <&pxo_board>;
                                clock-names = "pxo";
                        };
-
-                       regulators-0 {
-                               compatible = "qcom,rpm-pm8901-regulators";
-
-                               pm8901_l0: l0 {};
-                               pm8901_l1: l1 {};
-                               pm8901_l2: l2 {};
-                               pm8901_l3: l3 {};
-                               pm8901_l4: l4 {};
-                               pm8901_l5: l5 {};
-                               pm8901_l6: l6 {};
-
-                               /* S0 and S1 Handled as SAW regulators by SPM */
-                               pm8901_s2: s2 {};
-                               pm8901_s3: s3 {};
-                               pm8901_s4: s4 {};
-
-                               pm8901_lvs0: lvs0 {};
-                               pm8901_lvs1: lvs1 {};
-                               pm8901_lvs2: lvs2 {};
-                               pm8901_lvs3: lvs3 {};
-
-                               pm8901_mvs: mvs {};
-                       };
-
-                       regulators-1 {
-                               compatible = "qcom,rpm-pm8058-regulators";
-
-                               pm8058_l0: l0 {};
-                               pm8058_l1: l1 {};
-                               pm8058_l2: l2 {};
-                               pm8058_l3: l3 {};
-                               pm8058_l4: l4 {};
-                               pm8058_l5: l5 {};
-                               pm8058_l6: l6 {};
-                               pm8058_l7: l7 {};
-                               pm8058_l8: l8 {};
-                               pm8058_l9: l9 {};
-                               pm8058_l10: l10 {};
-                               pm8058_l11: l11 {};
-                               pm8058_l12: l12 {};
-                               pm8058_l13: l13 {};
-                               pm8058_l14: l14 {};
-                               pm8058_l15: l15 {};
-                               pm8058_l16: l16 {};
-                               pm8058_l17: l17 {};
-                               pm8058_l18: l18 {};
-                               pm8058_l19: l19 {};
-                               pm8058_l20: l20 {};
-                               pm8058_l21: l21 {};
-                               pm8058_l22: l22 {};
-                               pm8058_l23: l23 {};
-                               pm8058_l24: l24 {};
-                               pm8058_l25: l25 {};
-
-                               pm8058_s0: s0 {};
-                               pm8058_s1: s1 {};
-                               pm8058_s2: s2 {};
-                               pm8058_s3: s3 {};
-                               pm8058_s4: s4 {};
-
-                               pm8058_lvs0: lvs0 {};
-                               pm8058_lvs1: lvs1 {};
-
-                               pm8058_ncp: ncp {};
-                       };
                };
 
                amba {
diff --git a/src/arm/qcom/qcom-msm8926-htc-memul.dts b/src/arm/qcom/qcom-msm8926-htc-memul.dts
new file mode 100644 (file)
index 0000000..ed328b2
--- /dev/null
@@ -0,0 +1,372 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Luca Weiss <luca@z3ntu.xyz>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &adsp_region;
+/delete-node/ &smem_region;
+
+/ {
+       model = "HTC One Mini 2";
+       compatible = "htc,memul", "qcom,msm8926", "qcom,msm8226";
+       chassis-type = "handset";
+
+       aliases {
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-power {
+                       label = "Power";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       reserved-memory {
+               unknown@5b00000 {
+                       reg = <0x05b00000 0x200000>;
+                       no-map;
+               };
+
+               unknown@7500000 {
+                       reg = <0x07500000 0xb00000>;
+                       no-map;
+               };
+
+               mpss_region: mpss@8000000 {
+                       reg = <0x08000000 0x4f00000>;
+                       no-map;
+               };
+
+               unknown@cf00000 {
+                       reg = <0x0cf00000 0x200000>;
+                       no-map;
+               };
+
+               mba_region: mba@d100000 {
+                       reg = <0x0d100000 0x3a000>;
+                       no-map;
+               };
+
+               unknown@d13a000 {
+                       reg = <0x0d13a000 0xc6000>;
+                       no-map;
+               };
+
+               wcnss_region: wcnss@d200000 {
+                       reg = <0x0d200000 0x650000>;
+                       no-map;
+               };
+
+               unknown@d850000 {
+                       reg = <0x0d850000 0x3b0000>;
+                       no-map;
+               };
+
+               adsp_region: adsp@dc00000 {
+                       reg = <0x0dc00000 0x1400000>;
+                       no-map;
+               };
+
+               unknown@f000000 {
+                       reg = <0x0f000000 0x500000>;
+                       no-map;
+               };
+
+               venus_region: venus@f500000 {
+                       reg = <0x0f500000 0x500000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+
+               unknown@fb00000 {
+                       reg = <0x0fb00000 0x1b00000>;
+                       no-map;
+               };
+       };
+};
+
+&adsp {
+       firmware-name = "qcom/msm8926/memul/adsp.mbn";
+       status = "okay";
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       magnetometer@d {
+               compatible = "asahi-kasei,ak8963";
+               reg = <0x0d>;
+               interrupts-extended = <&tlmm 66 IRQ_TYPE_EDGE_RISING>;
+               vdd-supply = <&pm8226_l19>;
+               vid-supply = <&pm8226_l28>;
+       };
+
+       accelerometer@18 {
+               compatible = "bosch,bma250e";
+               reg = <0x18>;
+               interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>;
+               vdd-supply = <&pm8226_l19>;
+               vddio-supply = <&pm8226_l28>;
+       };
+};
+
+&blsp1_i2c4 {
+       status = "okay";
+
+       /* TFA9887 @ 34 */
+       /* TFA9887 @ 35 */
+};
+
+&blsp1_i2c5 {
+       status = "okay";
+
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l19>;
+
+               syna,startup-delay-ms = <160>;
+
+               #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";
+
+       /* NCP6924 Camera Regulators @ 10 */
+       /* PN544 NFC @ 28 */
+       /* TPS61310 Flash/Torch @ 33 */
+};
+
+&pm8226_vib {
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <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 = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               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 = <3000000>;
+               };
+
+               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 = <1800000>;
+               };
+
+               pm8226_lvs1: lvs1 {};
+       };
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8226_l18>;
+       vqmmc-supply = <&pm8226_l21>;
+
+       bus-width = <4>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+       status = "okay";
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <1750000>;
+       qcom,fast-charge-current-limit = <1750000>;
+       qcom,fast-charge-safe-voltage = <4360000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4300000>;
+       qcom,minimum-input-voltage = <4300000>;
+
+       status = "okay";
+};
+
+&usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
diff --git a/src/arm/qcom/qcom-msm8926-microsoft-superman-lte.dts b/src/arm/qcom/qcom-msm8926-microsoft-superman-lte.dts
new file mode 100644 (file)
index 0000000..9b48661
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226-microsoft-common.dtsi"
+
+/* This device has touchscreen on i2c3 instead */
+/delete-node/ &touchscreen;
+
+/ {
+       model = "Nokia Lumia 735";
+       compatible = "microsoft,superman-lte", "qcom,msm8926", "qcom,msm8226";
+       chassis-type = "handset";
+};
+
+&blsp1_i2c3 {
+       status = "okay";
+
+       touchscreen: touchscreen@4b {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x4b>;
+
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l15>;
+               vio-supply = <&pm8226_l6>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x01>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_i2c5 {
+       status = "disabled";
+};
diff --git a/src/arm/qcom/qcom-msm8926-microsoft-tesla.dts b/src/arm/qcom/qcom-msm8926-microsoft-tesla.dts
new file mode 100644 (file)
index 0000000..53a6d4e
--- /dev/null
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
+ * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
+ * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226-microsoft-common.dtsi"
+
+/* This device has touchscreen on i2c1 instead */
+/delete-node/ &touchscreen;
+
+/ {
+       model = "Nokia Lumia 830";
+       compatible = "microsoft,tesla", "qcom,msm8926", "qcom,msm8226";
+       chassis-type = "handset";
+};
+
+&blsp1_i2c1 {
+       status = "okay";
+
+       touchscreen: touchscreen@4b {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x4b>;
+
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l15>;
+               vio-supply = <&pm8226_l6>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x01>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_i2c5 {
+       status = "disabled";
+};
+
+&gpio_keys {
+       key-camera-snapshot {
+               label = "Camera Snapshot";
+               gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+               linux,code = <KEY_CAMERA>;
+       };
+
+       key-camera-focus {
+               label = "Camera Focus";
+               gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+               linux,code = <KEY_CAMERA_FOCUS>;
+       };
+};
diff --git a/src/arm/qcom/qcom-msm8926-motorola-peregrine.dts b/src/arm/qcom/qcom-msm8926-motorola-peregrine.dts
new file mode 100644 (file)
index 0000000..0cbe2d2
--- /dev/null
@@ -0,0 +1,291 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &smem_region;
+
+/ {
+       model = "Motorola Moto G 4G (2013)";
+       compatible = "motorola,peregrine", "qcom,msm8926", "qcom,msm8226";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+       };
+
+       chosen {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer0: framebuffer@3200000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x03200000 0x800000>;
+                       width = <720>;
+                       height = <1280>;
+                       stride = <(720 * 3)>;
+                       format = "r8g8b8";
+               };
+       };
+
+       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>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       reg = <0x03200000 0x800000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+       };
+};
+
+&blsp1_i2c3 {
+       status = "okay";
+
+       sensor@48 {
+               compatible = "ti,tmp108";
+               reg = <0x48>;
+       };
+};
+
+&blsp1_uart3 {
+       status = "okay";
+};
+
+&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 {
+                       /* Pull-up for I2C lines */
+                       regulator-always-on;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8226_l18>;
+       vqmmc-supply = <&pm8226_l21>;
+
+       bus-width = <4>;
+       cd-gpios = <&tlmm 115 GPIO_ACTIVE_HIGH>;
+
+       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";
+};
+
+&usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
index 6c1bc3818883ca34f014e02e1c13e8c08ae717e8..36f4c997b0b3aa8c9bbbee78906f03dad0a73e7e 100644 (file)
@@ -2,6 +2,7 @@
 #include <dt-bindings/input/input.h>
 
 #include "qcom-msm8960.dtsi"
+#include "pm8921.dtsi"
 
 / {
        model = "Qualcomm MSM8960 CDP";
        };
 };
 
-&pmicintc {
-       keypad@148 {
-               linux,keymap = <
-                       MATRIX_KEY(0, 0, KEY_VOLUMEUP)
-                       MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
-                       MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
-                       MATRIX_KEY(0, 3, KEY_CAMERA)
-                       >;
-               keypad,num-rows = <1>;
-               keypad,num-columns = <5>;
-       };
+&pm8921 {
+       interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&pm8921_keypad {
+       linux,keymap = <
+               MATRIX_KEY(0, 0, KEY_VOLUMEUP)
+               MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
+               MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
+               MATRIX_KEY(0, 3, KEY_CAMERA)
+               >;
+       keypad,num-rows = <1>;
+       keypad,num-columns = <5>;
+
+       status = "okay";
 };
 
 &rpm {
index 13e85c2874987110b44ac1947cfdadc6e68d01b8..1a5116336ff0290691a152b14a60676f3d8f9baf 100644 (file)
@@ -1,8 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/reset/qcom,gcc-msm8960.h>
 
 #include "qcom-msm8960.dtsi"
-#include <dt-bindings/reset/qcom,gcc-msm8960.h>
+#include "pm8921.dtsi"
 
 / {
        model = "Samsung Galaxy Express SGH-I437";
        };
 };
 
+&pm8921 {
+       interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &rpm {
        regulators {
                compatible = "qcom,rpm-pm8921-regulators";
index d13080fcbeea222c149f6fdafc253a258668593d..f420740e068e825d6195d3a85512097449b272d8 100644 (file)
                                     <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "ack", "err", "wakeup";
-
-                       regulators {
-                               compatible = "qcom,rpm-pm8921-regulators";
-                       };
                };
 
                acc0: clock-controller@2088000 {
                        };
                };
 
-               ssbi@500000 {
+               ssbi: ssbi@500000 {
                        compatible = "qcom,ssbi";
                        reg = <0x500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
-
-                       pmicintc: pmic {
-                               compatible = "qcom,pm8921";
-                               interrupt-parent = <&msmgpio>;
-                               interrupts = <104 IRQ_TYPE_LEVEL_LOW>;
-                               #interrupt-cells = <2>;
-                               interrupt-controller;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pwrkey@1c {
-                                       compatible = "qcom,pm8921-pwrkey";
-                                       reg = <0x1c>;
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <50 IRQ_TYPE_EDGE_RISING>,
-                                                    <51 IRQ_TYPE_EDGE_RISING>;
-                                       debounce = <15625>;
-                                       pull-up;
-                               };
-
-                               keypad@148 {
-                                       compatible = "qcom,pm8921-keypad";
-                                       reg = <0x148>;
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <74 IRQ_TYPE_EDGE_RISING>,
-                                                    <75 IRQ_TYPE_EDGE_RISING>;
-                                       debounce = <15>;
-                                       scan-delay = <32>;
-                                       row-hold = <91500>;
-                               };
-
-                               rtc@11d {
-                                       compatible = "qcom,pm8921-rtc";
-                                       interrupt-parent = <&pmicintc>;
-                                       interrupts = <39 IRQ_TYPE_EDGE_RISING>;
-                                       reg = <0x11d>;
-                                       allow-set-time;
-                               };
-                       };
                };
 
                rng@1a500000 {
index 60bdfddeae69eb828831d06192d2ca20fd539cf1..4aaae8537a3fd9fd41524f60d2c2ef43821e9140 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.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>
                enable-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
        };
 
+       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";
 
 
 &remoteproc_adsp {
        cx-supply = <&pm8841_s2>;
+       status = "okay";
 };
 
 &remoteproc_mss {
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
+       status = "okay";
 };
 
 &rpm_requests {
index 68a2f9094e536f758b25ed0e97d97fc87257b71e..d34659ebac22e65a511994ef201fe04f12089781 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.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>
                        pmsg-size = <0x80000>;
                };
        };
+
+       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;
+       };
 };
 
 &blsp1_i2c2 {
 
 &remoteproc_adsp {
        cx-supply = <&pm8841_s2>;
+       status = "okay";
 };
 
 &remoteproc_mss {
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
+       status = "okay";
 };
 
 &rpm_requests {
        qcom,fast-charge-low-threshold-voltage = <3400000>;
        qcom,auto-recharge-threshold-voltage = <4200000>;
        qcom,minimum-input-voltage = <4300000>;
+
+       status = "okay";
 };
 
 &tlmm {
index 0bc2e66d15b15621aa506ff2a3e0ad7fd300035e..b1413983787c2e2f6a6c38fdad8d97937ec4d0d3 100644 (file)
                        reg = <0xf9011000 0x1000>;
                };
 
+               saw_l2: power-controller@f9012000 {
+                       compatible = "qcom,saw2";
+                       reg = <0xf9012000 0x1000>;
+                       regulator;
+               };
+
+               watchdog@f9017000 {
+                       compatible = "qcom,apss-wdt-msm8974", "qcom,kpss-wdt";
+                       reg = <0xf9017000 0x1000>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&sleep_clk>;
+               };
+
                timer@f9020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               saw0: power-controller@f9089000 {
-                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
-                       reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
-               };
-
-               saw1: power-controller@f9099000 {
-                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
-                       reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
-               };
-
-               saw2: power-controller@f90a9000 {
-                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
-                       reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
-               };
-
-               saw3: power-controller@f90b9000 {
-                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
-                       reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
-               };
-
-               saw_l2: power-controller@f9012000 {
-                       compatible = "qcom,saw2";
-                       reg = <0xf9012000 0x1000>;
-                       regulator;
-               };
-
                acc0: power-manager@f9088000 {
                        compatible = "qcom,kpss-acc-v2";
                        reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
                };
 
+               saw0: power-controller@f9089000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
+               };
+
                acc1: power-manager@f9098000 {
                        compatible = "qcom,kpss-acc-v2";
                        reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
                };
 
+               saw1: power-controller@f9099000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
+               };
+
                acc2: power-manager@f90a8000 {
                        compatible = "qcom,kpss-acc-v2";
                        reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
                };
 
+               saw2: power-controller@f90a9000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
+               };
+
                acc3: power-manager@f90b8000 {
                        compatible = "qcom,kpss-acc-v2";
                        reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
                };
 
+               saw3: power-controller@f90b9000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
+               };
+
                sdhc_1: mmc@f9824900 {
                        compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
                        };
                };
 
+               bimc: interconnect@fc380000 {
+                       reg = <0xfc380000 0x6a000>;
+                       compatible = "qcom,msm8974-bimc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
+                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
+               };
+
                gcc: clock-controller@fc400000 {
                        compatible = "qcom,gcc-msm8974";
                        #clock-cells = <1>;
                        };
                };
 
-               bimc: interconnect@fc380000 {
-                       reg = <0xfc380000 0x6a000>;
-                       compatible = "qcom,msm8974-bimc";
-                       #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
-               };
-
                snoc: interconnect@fc460000 {
                        reg = <0xfc460000 0x4000>;
                        compatible = "qcom,msm8974-snoc";
                        #interconnect-cells = <1>;
                        clock-names = "bus", "bus_a";
                        clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
+                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
                };
 
                pnoc: interconnect@fc468000 {
                        #interconnect-cells = <1>;
                        clock-names = "bus", "bus_a";
                        clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
-                                <&rpmcc RPM_SMD_PNOC_A_CLK>;
+                                <&rpmcc RPM_SMD_PNOC_A_CLK>;
                };
 
                ocmemnoc: interconnect@fc470000 {
                        #interconnect-cells = <1>;
                        clock-names = "bus", "bus_a";
                        clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
-                                <&rpmcc RPM_SMD_OCMEMGX_A_CLK>;
+                                <&rpmcc RPM_SMD_OCMEMGX_A_CLK>;
                };
 
                mmssnoc: interconnect@fc478000 {
                        #interconnect-cells = <1>;
                        clock-names = "bus", "bus_a";
                        clocks = <&mmcc MMSS_S0_AXI_CLK>,
-                                <&mmcc MMSS_S0_AXI_CLK>;
+                                <&mmcc MMSS_S0_AXI_CLK>;
                };
 
                cnoc: interconnect@fc480000 {
                        #interconnect-cells = <1>;
                        clock-names = "bus", "bus_a";
                        clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
-                                <&rpmcc RPM_SMD_CNOC_A_CLK>;
+                                <&rpmcc RPM_SMD_CNOC_A_CLK>;
                };
 
                tsens: thermal-sensor@fc4a9000 {
                                        bias-pull-up;
                                        drive-strength = <2>;
                                };
-
-                               cd-pins {
-                                       pins = "gpio54";
-                                       function = "gpio";
-                                       bias-disable;
-                                       drive-strength = <2>;
-                               };
                        };
 
                        blsp1_uart2_default: blsp1-uart2-default-state {
                             <GIC_PPI 1 0xf08>;
                clock-frequency = <19200000>;
        };
-
-       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;
-       };
 };
index 42d253b75dad02552e03b0c210d3589c9727a678..fe227fd3f908e219e20bffe3561390ca6568468e 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974pro.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.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>
                enable-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
                vcc-supply = <&pm8941_l18>;
        };
+
+       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;
+       };
 };
 
 &blsp1_i2c2 {
        qcom,fast-charge-high-threshold-voltage = <4350000>;
        qcom,auto-recharge-threshold-voltage = <4240000>;
        qcom,minimum-input-voltage = <4450000>;
+
+       status = "okay";
 };
 
 &tlmm {
index 8230d0e1d95d1de1bff1ad1af990e1850b6b4246..4c8edadea0ac63db668dbd666fbb8d92e23232b7 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974pro.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
                        debounce-interval = <150>;
                };
        };
+
+       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;
+       };
 };
 
 &blsp1_i2c1 {
        status = "okay";
 };
 
+&smbb {
+       status = "okay";
+};
+
 &tlmm {
        gpio_hall_sensor_default: gpio-hall-sensor-default-state {
                pins = "gpio68";
index 3e2c86591ee2f79ef8af323279bac754f302c29e..b93539e2b87e91b2ec03c346f71078a2bd6b9044 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974pro.dtsi"
-#include "qcom-pma8084.dtsi"
+#include "pma8084.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/leds/common.h>
                enable-active-high;
        };
 
-       /delete-node/ vreg-boost;
+       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 {
                vddr-supply = <&vreg_panel>;
 
                reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
-               te-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
 
                port {
                        panel_in: endpoint {
index 11468d1409f7227fa6ca5ca9e354837192714968..ee94741a26ed6d591d8343666c6546e411670488 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974pro.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.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>
                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";
 
 
 &remoteproc_adsp {
        cx-supply = <&pm8841_s2>;
+       status = "okay";
 };
 
 &remoteproc_mss {
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
+       status = "okay";
 };
 
 &rpm_requests {
        qcom,fast-charge-low-threshold-voltage = <3400000>;
        qcom,auto-recharge-threshold-voltage = <4200000>;
        qcom,minimum-input-voltage = <4300000>;
+
+       status = "okay";
 };
 
 &tlmm {
index 7e97ad5803d87ba86b2538f3fe5a3d1d8f3b7121..2470693619090b80f908960f2660ec14a3916e6e 100644 (file)
@@ -9,7 +9,7 @@
 #include "qcom-sdx55.dtsi"
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <arm64/qcom/pm8150b.dtsi>
-#include "qcom-pmx55.dtsi"
+#include "pmx55.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. SDX55 MTP";
index 51058b06527979fb3baa59637478dba1d15b1a30..082f7ed1a01fb87223ac0d924c0cf781fb233557 100644 (file)
@@ -8,7 +8,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "qcom-sdx55.dtsi"
-#include "qcom-pmx55.dtsi"
+#include "pmx55.dtsi"
 
 / {
        model = "Thundercomm T55 Development Kit";
index 8fadc6e70692a5691fc61b8292dbe0b9656cb38f..e336a15b45c4c6388128cd886378343d62e82218 100644 (file)
@@ -8,7 +8,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "qcom-sdx55.dtsi"
-#include "qcom-pmx55.dtsi"
+#include "pmx55.dtsi"
 
 / {
        model = "Telit FN980 TLB";
index 2aa5089a8513d127e8cc8508549c9f9a1b8aed19..27429d0fedfba8ac6f144c55dbd49d295f5cec29 100644 (file)
 
                usb_qmpphy: phy@ff6000 {
                        compatible = "qcom,sdx55-qmp-usb3-uni-phy";
-                       reg = <0x00ff6000 0x1c0>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x00ff6000 0x1000>;
 
                        clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
                                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
-                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
-                       clock-names = "aux", "cfg_ahb", "ref";
-
-                       resets = <&gcc GCC_USB3PHY_PHY_BCR>,
-                                <&gcc GCC_USB3_PHY_BCR>;
-                       reset-names = "phy", "common";
-
-                       usb_ssphy: phy@ff6200 {
-                               reg = <0x00ff6200 0x170>,
-                                     <0x00ff6400 0x200>,
-                                     <0x00ff6800 0x800>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
+                                <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
+
+                       resets = <&gcc GCC_USB3_PHY_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
+
+                       status = "disabled";
                };
 
                mc_virt: interconnect@1100000 {
                                          "msi8";
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc 0 0 0 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
-                                       <0 0 0 2 &intc 0 0 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
-                                       <0 0 0 3 &intc 0 0 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
-                                       <0 0 0 4 &intc 0 0 0 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       interrupt-map = <0 0 0 1 &intc 0 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
                        clocks = <&gcc GCC_PCIE_PIPE_CLK>,
                                 <&gcc GCC_PCIE_AUX_CLK>,
                        status = "disabled";
                };
 
-               pcie_phy: phy@1c07000 {
+               pcie_phy: phy@1c06000 {
                        compatible = "qcom,sdx55-qmp-pcie-phy";
-                       reg = <0x01c07000 0x2000>;
+                       reg = <0x01c06000 0x2000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                                          <&gcc GCC_USB30_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 51 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 11 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 10 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                iommus = <&apps_smmu 0x1a0 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_hsphy>, <&usb_ssphy>;
+                               phys = <&usb_hsphy>, <&usb_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                        compatible = "qcom,sdx55-pdc", "qcom,pdc";
                        reg = <0x0b210000 0x30000>;
                        qcom,pdc-ranges = <0 179 52>;
-                       #interrupt-cells = <3>;
+                       #interrupt-cells = <2>;
                        interrupt-parent = <&intc>;
                        interrupt-controller;
                };
index 9649c859a2c36355f53c75a5277fb755901a6189..07c10c84eefa1ba0e0d9ed89065c6dfbebc6a430 100644 (file)
@@ -12,7 +12,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <arm64/qcom/pmk8350.dtsi>
 #include <arm64/qcom/pm7250b.dtsi>
-#include "qcom-pmx65.dtsi"
+#include "pmx65.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. SDX65 MTP";
index e559adaaeee7a48a6fa1430bc7dcf0ab89d6f8a8..40591a4da6a42fb7d0c0695e0e70c212a2b64c09 100644 (file)
                gcc: clock-controller@100000 {
                        compatible = "qcom,gcc-sdx65";
                        reg = <0x00100000 0x001f7400>;
-                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>;
-                       clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>,
+                                <&pcie_phy>,
+                                <0>;
+                       clock-names = "bi_tcxo",
+                                     "bi_tcxo_ao",
+                                     "sleep_clk",
+                                     "pcie_pipe_clk",
+                                     "usb3_phy_wrapper_gcc_usb30_pipe_clk";
                        #power-domain-cells = <1>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
 
                usb_qmpphy: phy@ff6000 {
                        compatible = "qcom,sdx65-qmp-usb3-uni-phy";
-                       reg = <0x00ff6000 0x1c8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x00ff6000 0x2000>;
 
                        clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_EN>,
                                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
-                                <&gcc GCC_USB3_PRIM_CLKREF_EN>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
-                       resets = <&gcc GCC_USB3PHY_PHY_BCR>,
-                                <&gcc GCC_USB3_PHY_BCR>;
-                       reset-names = "phy", "common";
+                       resets = <&gcc GCC_USB3_PHY_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
                        status = "disabled";
 
-                       usb_ssphy: phy@ff6200 {
-                               reg = <0x00ff6e00 0x160>,
-                                     <0x00ff7000 0x1ec>,
-                                     <0x00ff6200 0x1e00>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
                };
 
                system_noc: interconnect@1620000 {
                        power-domains = <&gcc PCIE_GDSC>;
 
                        phys = <&pcie_phy>;
-                       phy-names = "pcie-phy";
+                       phy-names = "pciephy";
 
                        max-link-speed = <3>;
                        num-lanes = <2>;
                                iommus = <&apps_smmu 0x1a0 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_hsphy>, <&usb_ssphy>;
+                               phys = <&usb_hsphy>, <&usb_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                        reg = <0x0c264000 0x1000>;
                };
 
-               spmi_bus: qcom,spmi@c440000 {
+               spmi_bus: spmi@c440000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0xc440000 0xd00>,
                                <0xc600000 0x2000000>,
index e10f99278c77aa412f1751c87209286ef124df7a..de52218ceaa4c0e07e052d0c2b4d38b0d9b0ab37 100644 (file)
                        };
                };
        };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
 };
 
 &can1 {
                clocks = <&cec_clock>;
                clock-names = "cec";
 
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               dvdd-3v-supply = <&reg_3p3v>;
+               bgvdd-supply = <&reg_1p8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
index d21e00e1f40152d6e626ac9d67b1c04af02c7292..e1ac2c161e730342667a9956dac9d06f2cff4ba0 100644 (file)
                i2c-gpio,delay-us = <5>;
        };
 
-       backlight {
+       backlight: backlight {
                compatible = "pwm-backlight";
                pwms = <&tpu 2 33333 PWM_POLARITY_INVERTED>;
                brightness-levels = <0 1 2 4 8 16 32 64 128 255>;
                enable-gpios = <&pfc 61 GPIO_ACTIVE_HIGH>;
        };
 
+       panel {
+               compatible = "ampire,am-800480l1tmqw-t00h";
+               backlight = <&backlight>;
+               power-supply = <&reg_5p0v>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&lcdc0_rgb>;
+                       };
+               };
+       };
+
        sound {
                compatible = "simple-audio-card";
 
        };
 };
 
-&pfc {
+&lcdc0 {
        pinctrl-0 = <&lcd0_pins>;
        pinctrl-names = "default";
 
+       status = "okay";
+
+       ports {
+               port@0 {
+                       endpoint {
+                               remote-endpoint = <&panel_in>;
+                       };
+               };
+       };
+};
+
+&pfc {
        ether_pins: ether {
                groups = "gether_mii", "gether_int";
                function = "gether";
index 1b2cf5fa322b298549910bed487f0d56b1d49997..55884ec701f8dab49ee2223dd0b9e03df7a07262 100644 (file)
                status = "disabled";
        };
 
+       lcdc0: lcd-controller@fe940000 {
+               compatible = "renesas,r8a7740-lcdc";
+               reg = <0xfe940000 0x4000>;
+               interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7740_CLK_LCDC0>,
+                        <&cpg_clocks R8A7740_CLK_M3>, <&lcdlclk0_clk>,
+                        <&vou_clk>;
+               clock-names = "fck", "media", "lclk", "video";
+               power-domains = <&pd_a4lc>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lcdc0_rgb: endpoint {
+                               };
+                       };
+               };
+       };
+
+       lcdc1: lcd-controller@fe944000 {
+               compatible = "renesas,r8a7740-lcdc";
+               reg = <0xfe944000 0x4000>;
+               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7740_CLK_LCDC1>,
+                        <&cpg_clocks R8A7740_CLK_M3>, <&lcdlclk1_clk>,
+                        <&vou_clk>;
+               clock-names = "fck", "media", "lclk", "video";
+               power-domains = <&pd_a4lc>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lcdc1_rgb: endpoint {
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lcdc1_hdmi: endpoint {
+                               };
+                       };
+               };
+       };
+
        tmu0: timer@fff80000 {
                compatible = "renesas,tmu-r8a7740", "renesas,tmu";
                reg = <0xfff80000 0x2c>;
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
+               lcdlclk0_clk: lcdlclk0 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
+               lcdlclk1_clk: lcdlclk1 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
 
                /* Special CPG clocks */
                cpg_clocks: cpg_clocks@e6150000 {
index b1f679da36b2ede19854f59ba9d087161e0f5d27..a0b574398055ad2d63d4ff99ae18309b44583522 100644 (file)
                        };
                };
        };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
 };
 
 &du {
                clock-names = "cec";
                pd-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
 
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               dvdd-3v-supply = <&reg_3p3v>;
+               bgvdd-supply = <&reg_1p8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
index c105932f642ea517ed80e80de74b648a941b673f..24411044ef6c4f0ba33593092bec6dfa198dbc79 100644 (file)
                VDDIO-supply = <&reg_3p3v>;
        };
 
-       stmpe811@44 {
+       port-expander@44 {
                compatible = "st,stmpe811";
                reg = <0x44>;
                interrupt-parent = <&gpio4>;
                /* internal ADC reference */
                st,ref-sel = <0>;
 
-               stmpe_touchscreen {
+               touchscreen {
                        compatible = "st,stmpe-ts";
                        /* 8 sample average control */
                        st,ave-ctrl = <3>;
index 08ea149b1ee6f9dc79fb366dcacdcd47785ef339..9b13e8d1538b00667e36cf342aada02d7d2b7b20 100644 (file)
                states = <3300000 1>, <1800000 0>;
        };
 
-       keyboard-irq {
+       keypad-0 {
                compatible = "gpio-keys";
 
-               pinctrl-0 = <&keyboard_irq_pins>;
+               pinctrl-0 = <&keypad0_pins>;
                pinctrl-names = "default";
 
                interrupt-parent = <&gpio0>;
                };
        };
 
-       keyboard-gpio {
+       keypad-1 {
                compatible = "gpio-keys-polled";
                poll-interval = <50>;
 
-               pinctrl-0 = <&keyboard_gpio_pins>;
+               pinctrl-0 = <&keypad1_pins>;
                pinctrl-names = "default";
 
                key-3 {
 };
 
 &gpio0 {
-       keyboard-irq-hog {
+       keypad0-hog {
                gpio-hog;
                gpios = <17 GPIO_ACTIVE_LOW>, <18 GPIO_ACTIVE_LOW>;
                input;
 };
 
 &lbsc {
+       flash@0 {
+               compatible = "cfi-flash";
+               reg = <0x0 0x04000000>;
+               pinctrl-0 = <&flash_pins>;
+               pinctrl-names = "default";
+               bank-width = <2>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "uboot";
+                               reg = <0x00000000 0x00040000>;
+                               read-only;
+                       };
+                       partition@40000 {
+                               label = "uboot-env";
+                               reg = <0x00040000 0x00040000>;
+                               read-only;
+                       };
+                       partition@80000 {
+                               label = "flash";
+                               reg = <0x00080000 0x03f80000>;
+                       };
+               };
+       };
+
        ethernet@18000000 {
                compatible = "smsc,lan89218", "smsc,lan9115";
                reg = <0x18000000 0x100>;
                };
        };
 
+       flash_pins: flash {
+               groups = "lbsc_cs0";
+               function = "lbsc";
+       };
+
        scif2_pins: scif2 {
                groups = "scif2_data_c";
                function = "scif2";
                function = "hspi0";
        };
 
-       keyboard_irq_pins: keyboard-irq {
+       keypad0_pins: keypad-0 {
                pins = "GP_0_17", "GP_0_18";
                bias-pull-up;
        };
-       keyboard_gpio_pins: keyboard-gpio {
+       keypad1_pins: keypad-1 {
                pins = "GP_0_19", "GP_0_20";
                bias-pull-up;
        };
index 4d666ad8b114b33b2ef0e57aadc37a0fe3fbd798..8590981245a62057c2b61370e57a7627f36496e8 100644 (file)
                };
        };
 
+       fixedregulator1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        fixedregulator3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "fixed-3.3V";
         *
         * IIC0/I2C0 does not appear to support fallback to GPIO.
         */
-       i2cexio0: i2c-10 {
+       i2cexio0: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&iic0>, <&i2c0>;
                i2c-bus-name = "i2c-exio0";
         * This is similar to the arangement described for i2cexio0 (above)
         * with a fallback to GPIO also provided.
         */
-       i2cexio1: i2c-11 {
+       i2cexio1: i2c-mux2 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&iic1>, <&i2c1>, <&gpioi2c1>;
                i2c-bus-name = "i2c-exio1";
         * IIC2 and I2C2 may be switched using pinmux.
         * A fallback to GPIO is also provided.
         */
-       i2chdmi: i2c-12 {
+       i2chdmi: i2c-mux3 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
                i2c-bus-name = "i2c-hdmi";
                        clocks = <&cec_clock>;
                        clock-names = "cec";
 
+                       avdd-supply = <&fixedregulator1v8>;
+                       dvdd-supply = <&fixedregulator1v8>;
+                       pvdd-supply = <&fixedregulator1v8>;
+                       dvdd-3v-supply = <&fixedregulator3v3>;
+                       bgvdd-supply = <&fixedregulator1v8>;
+
                        adi,input-depth = <8>;
                        adi,input-colorspace = "rgb";
                        adi,input-clock = "1x";
         * IIC3 and I2C3 may be switched using pinmux.
         * IIC3/I2C3 does not appear to support fallback to GPIO.
         */
-       i2cpwr: i2c-13 {
+       i2cpwr: i2c-mux4 {
                compatible = "i2c-demux-pinctrl";
                pinctrl-names = "default";
                pinctrl-0 = <&pmic_irq_pins>;
                        interrupt-parent = <&irqc0>;
                        interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
 
                        rtc {
                                compatible = "dlg,da9063-rtc";
index fe14727eefe1ec8caddc3a46d7c3eaef2f80d57c..683f7395fab0b6961e5f00a3985fc9b690469237 100644 (file)
                };
        };
 
+       fixedregulator1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        fixedregulator3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "fixed-3.3V";
                clocks = <&osc4_clk>;
                clock-names = "cec";
 
+               avdd-supply = <&fixedregulator1v8>;
+               dvdd-supply = <&fixedregulator1v8>;
+               pvdd-supply = <&fixedregulator1v8>;
+               dvdd-3v-supply = <&fixedregulator3v3>;
+               bgvdd-supply = <&fixedregulator1v8>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
                interrupt-parent = <&irqc0>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                onkey {
                        compatible = "dlg,da9063-onkey";
index 545515b41ea3fae12ed53beff5846e46d32e9f89..0efd9f98c75aced03009396d1c6e6ac023d84c4a 100644 (file)
                };
        };
 
+       reg_1p8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        vcc_sdhi0: regulator-vcc-sdhi0 {
                compatible = "regulator-fixed";
 
         * I2C1 is routed to EXIO connector B, pins 64 (SCL) + 66 (SDA).
         * A fallback to GPIO is provided.
         */
-       i2cexio1: i2c-12 {
+       i2cexio1: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c1>, <&gpioi2c1>;
                i2c-bus-name = "i2c-exio1";
        /*
         * A fallback to GPIO is provided for I2C2.
         */
-       i2chdmi: i2c-13 {
+       i2chdmi: i2c-mux2 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c2>, <&gpioi2c2>;
                i2c-bus-name = "i2c-hdmi";
                        clocks = <&cec_clock>;
                        clock-names = "cec";
 
+                       avdd-supply = <&reg_1p8v>;
+                       dvdd-supply = <&reg_1p8v>;
+                       pvdd-supply = <&reg_1p8v>;
+                       dvdd-3v-supply = <&reg_3p3v>;
+                       bgvdd-supply = <&reg_1p8v>;
+
                        adi,input-depth = <8>;
                        adi,input-colorspace = "rgb";
                        adi,input-clock = "1x";
         * I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA).
         * A fallback to GPIO is provided.
         */
-       i2cexio4: i2c-14 {
+       i2cexio4: i2c-mux3 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c4>, <&gpioi2c4>;
                i2c-bus-name = "i2c-exio4";
                interrupt-parent = <&irqc0>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                rtc {
                        compatible = "dlg,da9063-rtc";
index ec0a20d5130d6f0491a75d737973d7ae67f47ca6..93c86e9216455577271652dcbeb8623faba69885 100644 (file)
                reg = <2 0x00000000 0 0x40000000>;
        };
 
+       reg_1p8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        vcc_sdhi0: regulator-vcc-sdhi0 {
                compatible = "regulator-fixed";
 
        /*
         * A fallback to GPIO is provided for I2C2.
         */
-       i2chdmi: i2c-10 {
+       i2chdmi: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c2>, <&gpioi2c2>;
                i2c-bus-name = "i2c-hdmi";
                        interrupt-parent = <&gpio3>;
                        interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
 
+                       avdd-supply = <&reg_1p8v>;
+                       dvdd-supply = <&reg_1p8v>;
+                       pvdd-supply = <&reg_1p8v>;
+                       dvdd-3v-supply = <&reg_3p3v>;
+                       bgvdd-supply = <&reg_1p8v>;
+
                        adi,input-depth = <8>;
                        adi,input-colorspace = "rgb";
                        adi,input-clock = "1x";
                interrupt-parent = <&irqc0>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                watchdog {
                        compatible = "dlg,da9063-watchdog";
index e793134f32a3020a92be41ccece08ebefcad7559..540a9ad28f28ac1a08c7b4f5d3e6a23bcfc262e0 100644 (file)
                reg = <0 0x40000000 0 0x40000000>;
        };
 
+       d1_8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "D1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        d3_3v: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "D3.3V";
 };
 
 &lbsc {
+       flash@0 {
+               compatible = "cfi-flash";
+               reg = <0x00000000 0x04000000>;
+               pinctrl-0 = <&flash_pins>;
+               pinctrl-names = "default";
+               bank-width = <2>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "uboot";
+                               reg = <0x00000000 0x00040000>;
+                               read-only;
+                       };
+                       partition@40000 {
+                               label = "uboot-env";
+                               reg = <0x00040000 0x00040000>;
+                               read-only;
+                       };
+                       partition@80000 {
+                               label = "flash";
+                               reg = <0x00080000 0x03f80000>;
+                       };
+               };
+       };
+
        ethernet@18000000 {
                compatible = "smsc,lan89218", "smsc,lan9115";
                reg = <0x18000000 0x100>;
                function = "du1";
        };
 
+       flash_pins: flash {
+               groups = "lbsc_cs0";
+               function = "lbsc";
+       };
+
        keyboard_pins: keyboard {
                pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2";
                bias-pull-up;
                interrupt-parent = <&irqc>;
                interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
 
+               avdd-supply = <&d1_8v>;
+               dvdd-supply = <&d1_8v>;
+               pvdd-supply = <&d1_8v>;
+               dvdd-3v-supply = <&d3_3v>;
+               bgvdd-supply = <&d1_8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
                interrupt-parent = <&irqc>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                rtc {
                        compatible = "dlg,da9063-rtc";
index f87e78fe3f6e6aecb8289392af4a01d10bd38e5c..000f21a2a8630a8e6ad809ee51ab9463a0c5621d 100644 (file)
                reg = <0 0x40000000 0 0x40000000>;
        };
 
+       d1_8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "D1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        d3_3v: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "D3.3V";
                reg = <0x3d>, <0x4d>, <0x2d>, <0x5d>;
                reg-names = "main", "edid", "cec", "packet";
 
+               avdd-supply = <&d1_8v>;
+               dvdd-supply = <&d1_8v>;
+               pvdd-supply = <&d1_8v>;
+               dvdd-3v-supply = <&d3_3v>;
+               bgvdd-supply = <&d1_8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
                reg = <0x39>, <0x49>, <0x29>, <0x59>;
                reg-names = "main", "edid", "cec", "packet";
 
+               avdd-supply = <&d1_8v>;
+               dvdd-supply = <&d1_8v>;
+               pvdd-supply = <&d1_8v>;
+               dvdd-3v-supply = <&d3_3v>;
+               bgvdd-supply = <&d1_8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
index 79b537b24642662d2954a12dd06d2a88d5f28025..1ea6c757893bc0bf5ae4d7c6a6c91854939f9b3f 100644 (file)
                };
        };
 
+       reg_1p8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        vcc_sdhi0: regulator-vcc-sdhi0 {
                compatible = "regulator-fixed";
 
        /*
         * A fallback to GPIO is provided for I2C2.
         */
-       i2chdmi: i2c-11 {
+       i2chdmi: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c2>, <&gpioi2c2>;
                i2c-bus-name = "i2c-hdmi";
                        interrupt-parent = <&gpio3>;
                        interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
 
+                       avdd-supply = <&reg_1p8v>;
+                       dvdd-supply = <&reg_1p8v>;
+                       pvdd-supply = <&reg_1p8v>;
+                       dvdd-3v-supply = <&reg_3p3v>;
+                       bgvdd-supply = <&reg_1p8v>;
+
                        adi,input-depth = <8>;
                        adi,input-colorspace = "rgb";
                        adi,input-clock = "1x";
         * I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA).
         * A fallback to GPIO is provided.
         */
-       i2cexio4: i2c-12 {
+       i2cexio4: i2c-mux2 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c4>, <&gpioi2c4>;
                i2c-bus-name = "i2c-exio4";
                interrupt-parent = <&irqc0>;
                interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                rtc {
                        compatible = "dlg,da9063-rtc";
index 08df031bc27c9e03826389d353bf0298925a272d..b5ecafbb2e4de582e4449e7abba6217d4e35dcdb 100644 (file)
        /*
         * A fallback to GPIO is provided for I2C1.
         */
-       i2chdmi: i2c-11 {
+       i2chdmi: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c1>, <&gpioi2c1>;
                i2c-bus-name = "i2c-hdmi";
         * I2C4 is routed to EXIO connector B, pins 73 (SCL) + 74 (SDA).
         * A fallback to GPIO is provided.
         */
-       i2cexio4: i2c-14 {
+       i2cexio4: i2c-mux2 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c4>, <&gpioi2c4>;
                i2c-bus-name = "i2c-exio4";
                interrupt-parent = <&gpio3>;
                interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                rtc {
                        compatible = "dlg,da9063-rtc";
index b7af1befa126ba624b8391f0e7fe8dd2f4320cac..595e074085eb4cd3cf9ad84d59b138051302ef5e 100644 (file)
                };
        };
 
+       d1_8v: regulator-d1-8v {
+               compatible = "regulator-fixed";
+               regulator-name = "D1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        d3_3v: regulator-d3-3v {
                compatible = "regulator-fixed";
                regulator-name = "D3.3V";
        /*
         * A fallback to GPIO is provided for I2C1.
         */
-       i2chdmi: i2c-10 {
+       i2chdmi: i2c-mux1 {
                compatible = "i2c-demux-pinctrl";
                i2c-parent = <&i2c1>, <&gpioi2c1>;
                i2c-bus-name = "i2c-hdmi";
                        interrupt-parent = <&gpio5>;
                        interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
 
+                       avdd-supply = <&d1_8v>;
+                       dvdd-supply = <&d1_8v>;
+                       pvdd-supply = <&d1_8v>;
+                       dvdd-3v-supply = <&d3_3v>;
+                       bgvdd-supply = <&d1_8v>;
+
                        adi,input-depth = <8>;
                        adi,input-colorspace = "rgb";
                        adi,input-clock = "1x";
                interrupt-parent = <&gpio3>;
                interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                onkey {
                        compatible = "dlg,da9063-onkey";
index 0fa565a1c3ad3903b23b1be8e1da3fe26e400fe1..fa63e1afc4ef4c9201a354f32722d093fd19fd65 100644 (file)
                };
 
                can0: can@52104000 {
-                       compatible = "renesas,r9a06g032-sja1000","renesas,rzn1-sja1000";
+                       compatible = "renesas,r9a06g032-sja1000", "renesas,rzn1-sja1000";
                        reg = <0x52104000 0x800>;
                        reg-io-width = <4>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
index 67e1e04139e7326bc2539d555dd2be10fec1d146..e32c73d32f0aafd8bf4dad74f24110f60438bd90 100644 (file)
@@ -8,11 +8,26 @@
        model = "Rockchip RK3036 KylinBoard";
        compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
 
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
        memory@60000000 {
                device_type = "memory";
                reg = <0x60000000 0x20000000>;
        };
 
+       hdmi_con: hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
        leds: gpio-leds {
                compatible = "gpio-leds";
 
        status = "okay";
 };
 
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
 &i2c1 {
        clock-frequency = <400000>;
 
index 78686fc72ce69ac140049e328c5d35123486f57c..04af224005f8c28a261e97eee6db775bff985f54 100644 (file)
@@ -17,6 +17,9 @@
        interrupt-parent = <&gic>;
 
        aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
                         <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               rockchip,default-sample-phase = <158>;
                disable-wp;
                dmas = <&pdma 12>;
                dma-names = "rx-tx";
                pinctrl-0 = <&hdmi_ctl>;
                status = "disabled";
 
-               hdmi_in: port {
+               ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       hdmi_in_vop: endpoint@0 {
+
+                       hdmi_in: port@0 {
                                reg = <0>;
-                               remote-endpoint = <&vop_out_hdmi>;
+
+                               hdmi_in_vop: endpoint {
+                                       remote-endpoint = <&vop_out_hdmi>;
+                               };
+                       };
+
+                       hdmi_out: port@1 {
+                               reg = <1>;
                        };
                };
        };
index de9915d946f74f71b11c58cd8b9d7cc6b8a86105..30139f21de64d0e3a11fc510e54e49e508c69fa9 100644 (file)
 / {
        compatible = "rockchip,rk3066a";
 
+       aliases {
+               gpio4 = &gpio4;
+               gpio6 = &gpio6;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
index c38f42497cbd9eb8432dbcf7736fae37b273d7aa..c7ab7fcdb43615a9e5956b20572ed8c9da0d4fb9 100644 (file)
        compatible = "rockchip,rk3128-evb", "rockchip,rk3128";
 
        aliases {
-               gpio0 = &gpio0;
-               gpio1 = &gpio1;
-               gpio2 = &gpio2;
-               gpio3 = &gpio3;
-               i2c1 = &i2c1;
                mmc0 = &emmc;
        };
 
diff --git a/src/arm/rockchip/rk3128-xpi-3128.dts b/src/arm/rockchip/rk3128-xpi-3128.dts
new file mode 100644 (file)
index 0000000..03a9788
--- /dev/null
@@ -0,0 +1,425 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "rk3128.dtsi"
+
+/ {
+       model = "Geniatech XPI-3128";
+       compatible = "geniatech,xpi-3128", "rockchip,rk3128";
+
+       aliases {
+               ethernet0 = &gmac;
+               mmc0 = &emmc;
+               mmc1 = &sdmmc;
+       };
+
+       memory@60000000 {
+               device_type = "memory";
+               reg = <0x60000000 0x40000000>;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <3300000>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <0>;
+               };
+       };
+
+       dc_5v: dc-5v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "DC_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /*
+        * This is a vbus-supply, which also supplies the GL852G usb hub,
+        * thus has to be always-on
+        */
+       host_pwr_5v: host-pwr-5v-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <1500>;
+               regulator-name = "HOST_PWR_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_5v>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_drv>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ir_int>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-power {
+                       gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "on";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&power_led>;
+               };
+
+               led-spd {
+                       gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_LAN;
+                       color = <LED_COLOR_ID_GREEN>;
+                       /*
+                        * currently not allowed to be set as per
+                        * https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml
+                        * and needs to set in userspace:
+                        *
+                        * linux,default-trigger = "netdev";
+                        */
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spd_led>;
+               };
+       };
+
+       mcu3v3: mcu3v3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "MCU3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_ddr: vcc-ddr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_DDR";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               vin-supply = <&vcc_sys>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_io: vcc-io-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_IO";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_sys>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_lan: vcc-lan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_LAN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_sd: vcc-sd-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
+               startup-delay-us = <500>;
+               regulator-name = "VCC_SD";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_pwren>;
+       };
+
+       vcc_sys: vcc-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_SYS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_5v>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc33_hdmi: vcc33-hdmi-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC33_HDMI";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcca_33>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcca_33: vcca-33-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VCCA_33";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_sys>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_11: vdd-11-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_11";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc_sys>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd11_hdmi: vdd11-hdmi-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD11_HDMI";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vdd_11>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_arm: vdd-arm-regulator {
+               compatible = "pwm-regulator";
+               regulator-name = "VDD_ARM";
+               pwms = <&pwm1 0 25000 1>;
+               pwm-supply = <&vcc_sys>;
+               regulator-min-microvolt = <900000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /*
+        * As per schematics vdd_log is minimum 900 mV, maximum 1400 mV.
+        * Since there are HW blocks in PD_LOGIC (which are all driven by
+        * this supply), that either do not have a driver at all or the
+        * driver does not implement regulator support we have to make
+        * sure here that the voltage never drops below 1050 mV.
+        */
+       vdd_log: vdd-log-regulator {
+               compatible = "pwm-regulator";
+               regulator-name = "VDD_LOG";
+               pwms = <&pwm2 0 25000 1>;
+               pwm-dutycycle-range = <30 100>;
+               pwm-supply = <&vcc_sys>;
+               regulator-min-microvolt = <1050000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-ramp-delay = <4000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       bus-width = <8>;
+       vmmc-supply = <&vcc_io>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+       cap-mmc-highspeed;
+       mmc-ddr-3_3v;
+       no-sd;
+       no-sdio;
+       status = "okay";
+};
+
+&gmac {
+       clock_in_out = "output";
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rmii";
+       phy-handle = <&phy0>;
+       assigned-clocks = <&cru SCLK_MAC_SRC>;
+       assigned-clock-rates= <50000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rmii_pins>;
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names = /* GPIO0 A0-A7 */
+                         "", "", "HEADER_5", "HEADER_3",
+                         "", "", "", "",
+                         /* GPIO0 B0-B7 */
+                         "HEADER_22", "HEADER_23", "", "HEADER_19",
+                         "HEADER_26", "HEADER_21", "HEADER_24", "",
+                         /* GPIO0 C0-C7 */
+                         "", "HEADER_18", "", "",
+                         "", "", "", "",
+                         /* GPIO0 D0-D7 */
+                         "HEADER_36", "", "", "",
+                         "", "", "HEADER_13", "";
+};
+
+&gpio1 {
+       gpio-line-names = /* GPIO1 A0-A7 */
+                         "HEADER_7", "HEADER_35", "HEADER_33", "HEADER_37",
+                         "HEADER_40", "HEADER_38", "", "",
+                         /* GPIO1 B0-B7 */
+                         "HEADER_11", "", "", "HEADER_29",
+                         "HEADER_31", "", "", "",
+                         /* GPIO1 C0-C7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO1 D0-D7 */
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names = /* GPIO2 A0-A7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO2 B0-B7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO2 C0-C7 */
+                         "", "", "", "",
+                         "HEADER_27", "", "", "",
+                         /* GPIO2 D0-D7 */
+                         "", "", "HEADER_8", "HEADER_10",
+                         "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names = /* GPIO3 A0-A7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO3 B0-B7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO3 C0-C7 */
+                         "", "HEADER_32", "", "",
+                         "", "", "", "HEADER_12",
+                         /* GPIO3 D0-D7 */
+                         "", "", "", "HEADER_15",
+                         "", "", "", "";
+};
+
+&gpu {
+       mali-supply = <&vdd_log>;
+       status = "okay";
+};
+
+&mdio {
+       phy0: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               max-speed = <100>;
+               /* T2.2.4 min. 1 us */
+               reset-assert-us = <10>;
+               /* T2.2.1 + T2.2.2 + T2.2.3 min. 6.05 us */
+               reset-deassert-us = <20>;
+               reset-gpios = <&gpio2 RK_PD0 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dp83848c_rst>;
+       };
+};
+
+&pinctrl {
+       dp83848c {
+               dp83848c_rst: dp83848c-rst {
+                       rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ir-receiver {
+               ir_int: ir-int {
+                       rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               power_led: power-led {
+                       rockchip,pins = <0 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               spd_led: spd-led {
+                       rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb2 {
+               host_drv: host-drv {
+                       rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       vmmc-supply = <&vcc_sd>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
+       disable-wp;
+       cap-sd-highspeed;
+       no-mmc;
+       no-sdio;
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usb_host_ehci {
+       status = "okay";
+};
+
+&usb_otg {
+       vusb_a-supply = <&vcc_io>;
+       vusb_d-supply = <&vdd_11>;
+       status = "okay";
+};
+
+&usb2phy {
+       status = "okay";
+};
+
+&usb2phy_host {
+       status = "okay";
+};
+
+&usb2phy_otg {
+       status = "okay";
+};
index 01edf244ddeef6d6120a397cb40601a70b2fdc1a..e2264c40b924c6feef5822b3430f0aaf4ef02823 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/power/rk3128-power.h>
 
 / {
        compatible = "rockchip,rk3128";
        #address-cells = <1>;
        #size-cells = <1>;
 
+       aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+       };
+
        arm-pmu {
                compatible = "arm,cortex-a7-pmu";
                interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
                };
        };
 
+       gpu_opp_table: opp-table-1 {
+               compatible = "operating-points-v2";
+
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <975000 975000 1250000>;
+               };
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1050000 1050000 1250000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <1150000 1150000 1250000>;
+               };
+               opp-480000000 {
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-microvolt = <1250000 1250000 1250000>;
+               };
+       };
+
        timer {
                compatible = "arm,armv7-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                };
        };
 
+       gpu: gpu@10090000 {
+               compatible = "rockchip,rk3128-mali", "arm,mali-400";
+               reg = <0x10090000 0x10000>;
+               interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "gp",
+                                 "gpmmu",
+                                 "pp0",
+                                 "ppmmu0",
+                                 "pp1",
+                                 "ppmmu1";
+               clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
+               clock-names = "bus", "core";
+               operating-points-v2 = <&gpu_opp_table>;
+               resets = <&cru SRST_GPU>;
+               power-domains = <&power RK3128_PD_GPU>;
+               status = "disabled";
+       };
+
        pmu: syscon@100a0000 {
                compatible = "rockchip,rk3128-pmu", "syscon", "simple-mfd";
                reg = <0x100a0000 0x1000>;
+
+               power: power-controller {
+                       compatible = "rockchip,rk3128-power-controller";
+                       #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       power-domain@RK3128_PD_VIO {
+                               reg = <RK3128_PD_VIO>;
+                               clocks = <&cru ACLK_CIF>,
+                                        <&cru HCLK_CIF>,
+                                        <&cru DCLK_EBC>,
+                                        <&cru HCLK_EBC>,
+                                        <&cru ACLK_IEP>,
+                                        <&cru HCLK_IEP>,
+                                        <&cru ACLK_LCDC0>,
+                                        <&cru HCLK_LCDC0>,
+                                        <&cru PCLK_MIPI>,
+                                        <&cru ACLK_RGA>,
+                                        <&cru HCLK_RGA>,
+                                        <&cru ACLK_VIO0>,
+                                        <&cru ACLK_VIO1>,
+                                        <&cru HCLK_VIO>,
+                                        <&cru HCLK_VIO_H2P>,
+                                        <&cru DCLK_VOP>,
+                                        <&cru SCLK_VOP>;
+                               pm_qos = <&qos_ebc>,
+                                        <&qos_iep>,
+                                        <&qos_lcdc>,
+                                        <&qos_rga>,
+                                        <&qos_vip>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3128_PD_VIDEO {
+                               reg = <RK3128_PD_VIDEO>;
+                               clocks = <&cru ACLK_VDPU>,
+                                        <&cru HCLK_VDPU>,
+                                        <&cru ACLK_VEPU>,
+                                        <&cru HCLK_VEPU>,
+                                        <&cru SCLK_HEVC_CORE>;
+                               pm_qos = <&qos_vpu>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3128_PD_GPU {
+                               reg = <RK3128_PD_GPU>;
+                               clocks = <&cru ACLK_GPU>;
+                               pm_qos = <&qos_gpu>;
+                               #power-domain-cells = <0>;
+                       };
+               };
+       };
+
+       qos_gpu: qos@1012d000 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012d000 0x20>;
+       };
+
+       qos_vpu: qos@1012e000 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012e000 0x20>;
+       };
+
+       qos_rga: qos@1012f000 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012f000 0x20>;
+       };
+
+       qos_ebc: qos@1012f080 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012f080 0x20>;
+       };
+
+       qos_iep: qos@1012f100 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012f100 0x20>;
+       };
+
+       qos_lcdc: qos@1012f180 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012f180 0x20>;
+       };
+
+       qos_vip: qos@1012f200 {
+               compatible = "rockchip,rk3128-qos", "syscon";
+               reg = <0x1012f200 0x20>;
        };
 
        gic: interrupt-controller@10139000 {
                clocks = <&cru HCLK_OTG>;
                clock-names = "otg";
                dr_mode = "otg";
+               g-np-tx-fifo-size = <16>;
+               g-rx-fifo-size = <280>;
+               g-tx-fifo-size = <256 128 128 64 32 16>;
                phys = <&usb2phy_otg>;
                phy-names = "usb2-phy";
                status = "disabled";
                compatible = "generic-ehci";
                reg = <0x101c0000 0x20000>;
                interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST2>;
                phys = <&usb2phy_host>;
                phy-names = "usb";
                status = "disabled";
                compatible = "generic-ohci";
                reg = <0x101e0000 0x20000>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST2>;
                phys = <&usb2phy_host>;
                phy-names = "usb";
                status = "disabled";
                        clocks = <&cru SCLK_OTGPHY0>;
                        clock-names = "phyclk";
                        clock-output-names = "usb480m_phy";
+                       assigned-clocks = <&cru SCLK_USB480M>;
+                       assigned-clock-parents = <&usb2phy>;
                        #clock-cells = <0>;
                        status = "disabled";
 
                #dma-cells = <1>;
        };
 
+       gmac: ethernet@2008c000 {
+               compatible = "rockchip,rk3128-gmac";
+               reg = <0x2008c000 0x4000>;
+               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq", "eth_wake_irq";
+               clocks = <&cru SCLK_MAC>,
+                        <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
+                        <&cru SCLK_MAC_REF>, <&cru SCLK_MAC_REFOUT>,
+                        <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
+               clock-names = "stmmaceth",
+                             "mac_clk_rx", "mac_clk_tx",
+                             "clk_mac_ref", "clk_mac_refout",
+                             "aclk_mac", "pclk_mac";
+               resets = <&cru SRST_GMAC>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&grf>;
+               rx-fifo-depth = <4096>;
+               tx-fifo-depth = <2048>;
+               status = "disabled";
+
+               mdio: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+               };
+       };
+
        pinctrl: pinctrl {
                compatible = "rockchip,rk3128-pinctrl";
                rockchip,grf = <&grf>;
                                rockchip,pins = <1 RK_PB7 1 &pcfg_pull_default>;
                        };
 
+                       sdmmc_det: sdmmc-det {
+                               rockchip,pins = <1 RK_PC1 1 &pcfg_pull_default>;
+                       };
+
                        sdmmc_wp: sdmmc-wp {
                                rockchip,pins = <1 RK_PA7 1 &pcfg_pull_default>;
                        };
index a721744cbfd17f76d6abac5c879311d12d0aaa87..831561fc18146016771d539f82c26fa13637746c 100644 (file)
        interrupt-parent = <&gic>;
 
        aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
index cb9cdaddffd429187a6734b1fe075649544af238..ead343dc3df101a4ab98c4383f6302f600195597 100644 (file)
 
        aliases {
                ethernet0 = &gmac;
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               gpio4 = &gpio4;
+               gpio5 = &gpio5;
+               gpio6 = &gpio6;
+               gpio7 = &gpio7;
+               gpio8 = &gpio8;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
index cb4e42ede56a9a93c3edc5bdbf01b4a576fe4596..f37137f298d5f1605d0fb491624c363ea42adb8f 100644 (file)
 
        aliases {
                ethernet0 = &emac;
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
index abf3006f0a842435b9d56750e805fe93261649c6..f3291f3bbc6fd2b480e975632847f9310c082225 100644 (file)
        pwm4: pwm@10280000 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x10280000 0x10>;
-               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm5: pwm@10280010 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x10280010 0x10>;
-               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm6: pwm@10280020 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x10280020 0x10>;
-               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm7: pwm@10280030 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x10280030 0x10>;
-               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm0: pwm@20040000 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x20040000 0x10>;
-               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm1: pwm@20040010 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x20040010 0x10>;
-               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm2: pwm@20040020 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x20040020 0x10>;
-               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
        pwm3: pwm@20040030 {
                compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
                reg = <0x20040030 0x10>;
-               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
diff --git a/src/arm/rockchip/rv1109-sonoff-ihost.dts b/src/arm/rockchip/rv1109-sonoff-ihost.dts
new file mode 100644 (file)
index 0000000..45dced8
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+#include "rv1109.dtsi"
+#include "rv1126-sonoff-ihost.dtsi"
+
+/ {
+       model = "Sonoff iHost 2G";
+       compatible = "itead,sonoff-ihost", "rockchip,rv1109";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
diff --git a/src/arm/rockchip/rv1109.dtsi b/src/arm/rockchip/rv1109.dtsi
new file mode 100644 (file)
index 0000000..9cbaa08
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+
+#include "rv1126.dtsi"
+
+/ {
+       compatible = "rockchip,rv1109";
+
+       cpus {
+               /delete-node/ cpu@f02;
+               /delete-node/ cpu@f03;
+       };
+
+       arm-pmu {
+               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>, <&cpu1>;
+       };
+};
index f09be840596454d38378e0ab5006790a421ed6bb..0c2396b8f8db6db18b3ed78e2df2b358b8d2c493 100644 (file)
@@ -61,7 +61,7 @@
        phy-mode = "rgmii";
        phy-supply = <&vcc_3v3>;
        pinctrl-names = "default";
-       pinctrl-0 = <&rgmiim1_pins &clk_out_ethernetm1_pins>;
+       pinctrl-0 = <&rgmiim1_miim &rgmiim1_bus2 &rgmiim1_bus4 &clk_out_ethernetm1_pins>;
        tx_delay = <0x2a>;
        rx_delay = <0x1a>;
        status = "okay";
index bb34b0c9cb4a8893b47db95751e2a8b1c66eb301..06b1d7f2d8585a5a99d4a4fd65f4f3741d9fe6e1 100644 (file)
                                <0 RK_PB5 1 &pcfg_pull_none_drv_level_0_smt>;
                };
        };
+       i2c2 {
+               /omit-if-no-ref/
+               i2c2_xfer: i2c2-xfer {
+                       rockchip,pins =
+                               /* i2c2_scl */
+                               <0 RK_PC2 1 &pcfg_pull_none_drv_level_0_smt>,
+                               /* i2c2_sda */
+                               <0 RK_PC3 1 &pcfg_pull_none_drv_level_0_smt>;
+               };
+       };
        pwm2 {
                /omit-if-no-ref/
                pwm2m0_pins: pwm2m0-pins {
        };
        rgmii {
                /omit-if-no-ref/
-               rgmiim1_pins: rgmiim1-pins {
+               rgmiim1_miim: rgmiim1-miim {
                        rockchip,pins =
                                /* rgmii_mdc_m1 */
                                <2 RK_PC2 2 &pcfg_pull_none>,
                                /* rgmii_mdio_m1 */
-                               <2 RK_PC1 2 &pcfg_pull_none>,
-                               /* rgmii_rxclk_m1 */
-                               <2 RK_PD3 2 &pcfg_pull_none>,
+                               <2 RK_PC1 2 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               rgmiim1_rxer: rgmiim1-rxer {
+                       rockchip,pins =
+                               /* rgmii_rxer_m1 */
+                               <2 RK_PC0 2 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               rgmiim1_bus2: rgmiim1-bus2 {
+                       rockchip,pins =
                                /* rgmii_rxd0_m1 */
                                <2 RK_PB5 2 &pcfg_pull_none>,
                                /* rgmii_rxd1_m1 */
                                <2 RK_PB6 2 &pcfg_pull_none>,
-                               /* rgmii_rxd2_m1 */
-                               <2 RK_PC7 2 &pcfg_pull_none>,
-                               /* rgmii_rxd3_m1 */
-                               <2 RK_PD0 2 &pcfg_pull_none>,
                                /* rgmii_rxdv_m1 */
                                <2 RK_PB4 2 &pcfg_pull_none>,
-                               /* rgmii_txclk_m1 */
-                               <2 RK_PD2 2 &pcfg_pull_none_drv_level_3>,
                                /* rgmii_txd0_m1 */
                                <2 RK_PC3 2 &pcfg_pull_none_drv_level_3>,
                                /* rgmii_txd1_m1 */
                                <2 RK_PC4 2 &pcfg_pull_none_drv_level_3>,
+                               /* rgmii_txen_m1 */
+                               <2 RK_PC6 2 &pcfg_pull_none_drv_level_3>;
+               };
+               /omit-if-no-ref/
+               rgmiim1_bus4: rgmiim1-bus4 {
+                       rockchip,pins =
+                               /* rgmii_rxclk_m1 */
+                               <2 RK_PD3 2 &pcfg_pull_none>,
+                               /* rgmii_rxd2_m1 */
+                               <2 RK_PC7 2 &pcfg_pull_none>,
+                               /* rgmii_rxd3_m1 */
+                               <2 RK_PD0 2 &pcfg_pull_none>,
+                               /* rgmii_txclk_m1 */
+                               <2 RK_PD2 2 &pcfg_pull_none_drv_level_3>,
                                /* rgmii_txd2_m1 */
                                <2 RK_PD1 2 &pcfg_pull_none_drv_level_3>,
                                /* rgmii_txd3_m1 */
-                               <2 RK_PA4 2 &pcfg_pull_none_drv_level_3>,
-                               /* rgmii_txen_m1 */
-                               <2 RK_PC6 2 &pcfg_pull_none_drv_level_3>;
+                               <2 RK_PA4 2 &pcfg_pull_none_drv_level_3>;
+               };
+               /omit-if-no-ref/
+               rgmiim1_mclkinout: rgmiim1-mclkinout {
+                       rockchip,pins =
+                               /* rgmii_clk_m1 */
+                               <2 RK_PB7 2 &pcfg_pull_none>;
                };
        };
        sdmmc0 {
                                /* uart3_tx_m0 */
                                <3 RK_PC6 4 &pcfg_pull_up>;
                };
+               /omit-if-no-ref/
+               uart3m2_xfer: uart3m2-xfer {
+                       rockchip,pins =
+                               /* uart3_rx_m2 */
+                               <3 RK_PA1 4 &pcfg_pull_up>,
+                               /* uart3_tx_m2 */
+                               <3 RK_PA0 4 &pcfg_pull_up>;
+               };
        };
        uart4 {
                /omit-if-no-ref/
                                /* uart4_tx_m0 */
                                <3 RK_PA4 4 &pcfg_pull_up>;
                };
+               /omit-if-no-ref/
+               uart4m2_xfer: uart4m2-xfer {
+                       rockchip,pins =
+                               /* uart4_rx_m2 */
+                               <1 RK_PD4 3 &pcfg_pull_up>,
+                               /* uart4_tx_m2 */
+                               <1 RK_PD5 3 &pcfg_pull_up>;
+               };
        };
        uart5 {
                /omit-if-no-ref/
diff --git a/src/arm/rockchip/rv1126-sonoff-ihost.dts b/src/arm/rockchip/rv1126-sonoff-ihost.dts
new file mode 100644 (file)
index 0000000..77386a4
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+#include "rv1126.dtsi"
+#include "rv1126-sonoff-ihost.dtsi"
+
+/ {
+       model = "Sonoff iHost 4G";
+       compatible = "itead,sonoff-ihost", "rockchip,rv1126";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
diff --git a/src/arm/rockchip/rv1126-sonoff-ihost.dtsi b/src/arm/rockchip/rv1126-sonoff-ihost.dtsi
new file mode 100644 (file)
index 0000000..32b329e
--- /dev/null
@@ -0,0 +1,404 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2022 Edgeble AI Technologies Pvt. Ltd.
+ */
+
+/ {
+       aliases {
+               ethernet0 = &gmac;
+               mmc0 = &emmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       vcc5v0_sys: regulator-vcc5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       sdio_pwrseq: pwrseq-sdio {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_rstnout>;
+       rockchip,default-sample-phase = <90>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB1 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc_buck5>;
+               vcc6-supply = <&vcc_buck5>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+
+               regulators {
+                       vdd_npu_vepu: DCDC_REG1 {
+                               regulator-name = "vdd_npu_vepu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <650000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-name = "vdd_arm";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <725000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sys: DCDC_REG4 {
+                               regulator-name = "vcc3v3_sys";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_buck5: DCDC_REG5 {
+                               regulator-name = "vcc_buck5";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2200000>;
+                               regulator-max-microvolt = <2200000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2200000>;
+                               };
+                       };
+
+                       vcc_0v8: LDO_REG1 {
+                               regulator-name = "vcc_0v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_pmu: LDO_REG2 {
+                               regulator-name = "vcc1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd0v8_pmu: LDO_REG3 {
+                               regulator-name = "vcc0v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <800000>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG4 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_dovdd: LDO_REG5 {
+                               regulator-name = "vcc_dovdd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_dvdd: LDO_REG6 {
+                               regulator-name = "vcc_dvdd";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_avdd: LDO_REG7 {
+                               regulator-name = "vcc_avdd";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG8 {
+                               regulator-name = "vccio_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: LDO_REG9 {
+                               regulator-name = "vcc3v3_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_5v0: SWITCH_REG1 {
+                               regulator-name = "vcc_5v0";
+                       };
+
+                       vcc_3v3: SWITCH_REG2 {
+                               regulator-name = "vcc_3v3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "xin32k";
+       };
+};
+
+&gmac {
+       assigned-clocks = <&cru CLK_GMAC_SRC_M1>, <&cru CLK_GMAC_SRC>,
+                         <&cru CLK_GMAC_TX_RX>;
+       assigned-clock-parents = <&cru CLK_GMAC_RGMII_M1>, <&cru CLK_GMAC_SRC_M1>,
+                                <&cru RMII_MODE_CLK>;
+       assigned-clock-rates = <0>, <50000000>;
+       clock_in_out = "output";
+       phy-handle = <&phy>;
+       phy-mode = "rmii";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmiim1_miim &rgmiim1_rxer &rgmiim1_bus2 &rgmiim1_mclkinout>;
+       status = "okay";
+};
+
+&mdio {
+       phy: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_phy_rst>;
+               reset-active-low;
+               reset-assert-us = <50000>;
+               reset-deassert-us = <10000>;
+               reset-gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       ethernet {
+               eth_phy_rst: eth-phy-rst {
+                       rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+       bt {
+               bt_enable: bt-enable {
+                       rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_dev: bt-wake-dev {
+                       rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       wifi {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio0-supply = <&vcc1v8_pmu>;
+       pmuio1-supply = <&vcc3v3_sys>;
+       vccio1-supply = <&vcc_1v8>;
+       vccio2-supply = <&vccio_sd>;
+       vccio3-supply = <&vcc_1v8>;
+       vccio4-supply = <&vcc_dovdd>;
+       vccio5-supply = <&vcc_1v8>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_dovdd>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       max-frequency = <100000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
+       rockchip,default-sample-phase = <90>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       card-detect-delay = <200>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>;
+       rockchip,default-sample-phase = <90>;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr104;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8723ds-bt";
+               device-wake-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; /* BT_WAKE */
+               enable-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; /* BT_RST */
+               host-wake-gpios = <&gpio1 RK_PC5 GPIO_ACTIVE_HIGH>; /* BT_WAKE_HOST */
+               max-speed = <2000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_enable>, <&bt_wake_dev>, <&bt_wake_host>;
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3m2_xfer>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart4m2_xfer>;
+       status = "okay";
+};
index 9ccd1bad62294467b6ca7a24b10dbb446ec43b56..bb603cae13dfc7694bacc3cbbe24540cace1d9a4 100644 (file)
 
        aliases {
                i2c0 = &i2c0;
+               i2c2 = &i2c2;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
        };
 
        cpus {
                status = "disabled";
        };
 
+       i2c2: i2c@ff400000 {
+               compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
+               reg = <0xff400000 0x1000>;
+               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+               rockchip,grf = <&pmugrf>;
+               clocks = <&pmucru CLK_I2C2>, <&pmucru PCLK_I2C2>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        uart1: serial@ff410000 {
                compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
                reg = <0xff410000 0x100>;
index f775b9377a38b53fc45e4c69e9408d5c826e1e44..7f981b5c0d64b5dd445b15e8245517150aed7b1e 100644 (file)
 
                camera: camera@11800000 {
                        compatible = "samsung,fimc";
+                       ranges = <0x0 0x11800000 0xa0000>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        #clock-cells = <1>;
                        clock-output-names = "cam_a_clkout", "cam_b_clkout";
-                       ranges;
 
-                       fimc_0: fimc@11800000 {
+                       fimc_0: fimc@0 {
                                compatible = "samsung,exynos4210-fimc";
-                               reg = <0x11800000 0x1000>;
+                               reg = <0x0 0x1000>;
                                interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_FIMC0>,
                                         <&clock CLK_SCLK_FIMC0>;
                                status = "disabled";
                        };
 
-                       fimc_1: fimc@11810000 {
+                       fimc_1: fimc@10000 {
                                compatible = "samsung,exynos4210-fimc";
-                               reg = <0x11810000 0x1000>;
+                               reg = <0x00010000 0x1000>;
                                interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_FIMC1>,
                                         <&clock CLK_SCLK_FIMC1>;
                                status = "disabled";
                        };
 
-                       fimc_2: fimc@11820000 {
+                       fimc_2: fimc@20000 {
                                compatible = "samsung,exynos4210-fimc";
-                               reg = <0x11820000 0x1000>;
+                               reg = <0x00020000 0x1000>;
                                interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_FIMC2>,
                                         <&clock CLK_SCLK_FIMC2>;
                                status = "disabled";
                        };
 
-                       fimc_3: fimc@11830000 {
+                       fimc_3: fimc@30000 {
                                compatible = "samsung,exynos4210-fimc";
-                               reg = <0x11830000 0x1000>;
+                               reg = <0x00030000 0x1000>;
                                interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_FIMC3>,
                                         <&clock CLK_SCLK_FIMC3>;
                                status = "disabled";
                        };
 
-                       csis_0: csis@11880000 {
+                       csis_0: csis@80000 {
                                compatible = "samsung,exynos4210-csis";
-                               reg = <0x11880000 0x4000>;
+                               reg = <0x00080000 0x4000>;
                                interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_CSIS0>,
                                         <&clock CLK_SCLK_CSIS0>;
                                #size-cells = <0>;
                        };
 
-                       csis_1: csis@11890000 {
+                       csis_1: csis@90000 {
                                compatible = "samsung,exynos4210-csis";
-                               reg = <0x11890000 0x4000>;
+                               reg = <0x00090000 0x4000>;
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clock CLK_CSIS1>,
                                         <&clock CLK_SCLK_CSIS1>;
index a9ec1f6c1dea15cc81f8b821d18ac5bc917c5dd4..0d8495792a70215631a2c1de0e8517b0396ee560 100644 (file)
                };
        };
 
+       i2c-gpio-2 {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sda-gpios = <&gpk1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpk1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+
+               touchscreen@20 {
+                       compatible = "cypress,aries-touchkey";
+                       reg = <0x20>;
+
+                       interrupt-parent = <&gpl0>;
+                       interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+
+                       vdd-supply = <&vtouchled_reg>;
+                       vcc-supply = <&vtouch_reg>;
+                       linux,keycodes = <KEY_MENU>, <KEY_BACK>;
+               };
+       };
+
        spi-3 {
                compatible = "spi-gpio";
                #address-cells = <1>;
        vusb_a-supply = <&vusbdac_reg>;
 };
 
+&i2c_1 {
+       status = "okay";
+
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <100000>;
+
+       lis3dh: accelerometer@19 {
+               compatible = "st,lis3dh-accel";
+               reg = <0x19>;
+
+               mount-matrix = "0", "-1", "0",
+                              "1", "0", "0",
+                              "0", "0", "1";
+       };
+};
+
 &i2c_3 {
        status = "okay";
 
                                regulator-name = "TOUCH_2.8V";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
-                               regulator-always-on;
                        };
 
                        vpll_reg: LDO10 {
                                regulator-name = "VT_CAM_1.8V";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
+
+                               /*
+                                * Force-enable this regulator; otherwise the
+                                * kernel hangs very early in the boot process
+                                * for about 12 seconds, without apparent
+                                * reason.
+                                */
+                               regulator-always-on;
                        };
 
                        vcclcd_reg: LDO13 {
index d7954ff466b491b32acf6962ab5d64f4843f8157..e5254e32aa8fc326dfcabce33705a9b25e272052 100644 (file)
 };
 
 &fimd {
+       samsung,invert-vclk;
        status = "okay";
 };
 
index 84c1db221c984b4b971faaddbd009c92838832ee..b4b5e769145b855d223f109957c1395dce576319 100644 (file)
 };
 
 &camera {
+       ranges = <0x0 0x11800000 0xba1000>;
        clocks = <&clock CLK_SCLK_CAM0>, <&clock CLK_SCLK_CAM1>,
                 <&clock CLK_PIXELASYNCM0>, <&clock CLK_PIXELASYNCM1>;
        clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", "pxl_async1";
 
        /* fimc_[0-3] are configured outside, under phandles */
-       fimc_lite_0: fimc-lite@12390000 {
+       fimc_lite_0: fimc-lite@b90000 {
                compatible = "samsung,exynos4212-fimc-lite";
-               reg = <0x12390000 0x1000>;
+               reg = <0x00b90000 0x1000>;
                interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                power-domains = <&pd_isp>;
                clocks = <&isp_clock CLK_ISP_FIMC_LITE0>;
                status = "disabled";
        };
 
-       fimc_lite_1: fimc-lite@123a0000 {
+       fimc_lite_1: fimc-lite@ba0000 {
                compatible = "samsung,exynos4212-fimc-lite";
-               reg = <0x123a0000 0x1000>;
+               reg = <0x00ba0000 0x1000>;
                interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                power-domains = <&pd_isp>;
                clocks = <&isp_clock CLK_ISP_FIMC_LITE1>;
                status = "disabled";
        };
 
-       fimc_is: fimc-is@12000000 {
+       fimc_is: fimc-is@800000 {
                compatible = "samsung,exynos4212-fimc-is";
-               reg = <0x12000000 0x260000>;
+               reg = <0x00800000 0x260000>;
                interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
                power-domains = <&pd_isp>;
                iommus = <&sysmmu_fimc_isp>, <&sysmmu_fimc_drc>,
                         <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
                iommu-names = "isp", "drc", "fd", "mcuctl";
+               samsung,pmu-syscon = <&pmu_system_controller>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges;
                status = "disabled";
 
-               pmu@10020000 {
-                       reg = <0x10020000 0x3000>;
-               };
-
-               i2c1_isp: i2c-isp@12140000 {
+               i2c1_isp: i2c-isp@940000 {
                        compatible = "samsung,exynos4212-i2c-isp";
-                       reg = <0x12140000 0x100>;
+                       reg = <0x00940000 0x100>;
                        clocks = <&isp_clock CLK_ISP_I2C1_ISP>;
                        clock-names = "i2c_isp";
                        #address-cells = <1>;
index f7de5b5f2f383794509048c60cb19dcd9bb070b5..ed560c9a3aa1ef30f312c10d90394056dd047ebe 100644 (file)
 
                camera: camera@fa600000 {
                        compatible = "samsung,fimc";
+                       ranges = <0x0 0xfa600000 0xe01000>;
                        clocks = <&clocks SCLK_CAM0>, <&clocks SCLK_CAM1>;
                        clock-names = "sclk_cam0", "sclk_cam1";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        #clock-cells = <1>;
                        clock-output-names = "cam_a_clkout", "cam_b_clkout";
-                       ranges;
 
-                       csis0: csis@fa600000 {
+                       csis0: csis@0 {
                                compatible = "samsung,s5pv210-csis";
-                               reg = <0xfa600000 0x4000>;
+                               reg = <0x00000000 0x4000>;
                                interrupt-parent = <&vic2>;
                                interrupts = <29>;
                                clocks = <&clocks CLK_CSIS>,
                                #size-cells = <0>;
                        };
 
-                       fimc0: fimc@fb200000 {
+                       fimc0: fimc@c00000 {
                                compatible = "samsung,s5pv210-fimc";
-                               reg = <0xfb200000 0x1000>;
+                               reg = <0x00c00000 0x1000>;
                                interrupts = <5>;
                                interrupt-parent = <&vic2>;
                                clocks = <&clocks CLK_FIMC0>,
                                samsung,cam-if;
                        };
 
-                       fimc1: fimc@fb300000 {
+                       fimc1: fimc@d00000 {
                                compatible = "samsung,s5pv210-fimc";
-                               reg = <0xfb300000 0x1000>;
+                               reg = <0x00d00000 0x1000>;
                                interrupt-parent = <&vic2>;
                                interrupts = <6>;
                                clocks = <&clocks CLK_FIMC1>,
                                samsung,lcd-wb;
                        };
 
-                       fimc2: fimc@fb400000 {
+                       fimc2: fimc@e00000 {
                                compatible = "samsung,s5pv210-fimc";
-                               reg = <0xfb400000 0x1000>;
+                               reg = <0x00e00000 0x1000>;
                                interrupt-parent = <&vic2>;
                                interrupts = <7>;
                                clocks = <&clocks CLK_FIMC2>,
index d5d88771ef976f8069b828c708a9975308822458..0f87abeddc335a77d3706b9baf9623c90e7bfb1b 100644 (file)
                gpio0: gpio@8012e000 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8012e000 0x80>;
+                       reg = <0x8012e000 0x80>;
                        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio1: gpio@8012e080 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8012e080 0x80>;
+                       reg = <0x8012e080 0x80>;
                        interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio2: gpio@8000e000 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8000e000 0x80>;
+                       reg = <0x8000e000 0x80>;
                        interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio3: gpio@8000e080 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8000e080 0x80>;
+                       reg = <0x8000e080 0x80>;
                        interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio4: gpio@8000e100 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8000e100 0x80>;
+                       reg = <0x8000e100 0x80>;
                        interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio5: gpio@8000e180 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8000e180 0x80>;
+                       reg = <0x8000e180 0x80>;
                        interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio6: gpio@8011e000 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8011e000 0x80>;
+                       reg = <0x8011e000 0x80>;
                        interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio7: gpio@8011e080 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0x8011e080 0x80>;
+                       reg = <0x8011e080 0x80>;
                        interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                gpio8: gpio@a03fe000 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
-                       reg =  <0xa03fe000 0x80>;
+                       reg = <0xa03fe000 0x80>;
                        interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
index e1de9d389a01bfb0618790f462c0f87781c2444d..5eeb44c5e932346d3c66782e111e4b93b9eb2578 100644 (file)
@@ -9,6 +9,54 @@
        soc {
                prcmu@80157000 {
                        ab8500 {
+                               phy {
+                                       pinctrl-names = "default", "sleep";
+                                       pinctrl-0 = <&usb_a_1_default>;
+                                       pinctrl-1 = <&usb_a_1_sleep>;
+                               };
+
+                               regulator {
+                                       ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
+                                               regulator-name = "V-DISPLAY";
+                                       };
+
+                                       ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
+                                               regulator-name = "V-eMMC1";
+                                       };
+
+                                       ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
+                                               regulator-name = "V-MMC-SD";
+                                       };
+
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
+                                               regulator-name = "V-INTCORE";
+                                       };
+
+                                       ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
+                                               regulator-name = "V-TVOUT";
+                                       };
+
+                                       ab8500_ldo_audio_reg: ab8500_ldo_audio {
+                                               regulator-name = "V-AUD";
+                                       };
+
+                                       ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
+                                               regulator-name = "V-AMIC1";
+                                       };
+
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
+                                               regulator-name = "V-AMIC2";
+                                       };
+
+                                       ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
+                                               regulator-name = "V-DMIC";
+                                       };
+
+                                       ab8500_ldo_ana_reg: ab8500_ldo_ana {
+                                               regulator-name = "V-CSI/DSI";
+                                       };
+                               };
+
                                gpio {
                                        /* Hog a few default settings */
                                        pinctrl-names = "default";
diff --git a/src/arm/st/ste-href-ab8505.dtsi b/src/arm/st/ste-href-ab8505.dtsi
new file mode 100644 (file)
index 0000000..268db68
--- /dev/null
@@ -0,0 +1,490 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright 2023 Linus Walleij <linus.walleij@linaro.org>
+ */
+
+#include "ste-ab8505.dtsi"
+
+/ {
+       soc {
+               prcmu@80157000 {
+                       ab8505 {
+                               phy {
+                                       pinctrl-names = "default", "sleep";
+                                       pinctrl-0 = <&usb_a_1_default>;
+                                       pinctrl-1 = <&usb_a_1_sleep>;
+                               };
+
+                               regulator {
+                                       ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
+                                               regulator-name = "V-DISPLAY";
+                                       };
+
+                                       ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
+                                               regulator-name = "V-eMMC1";
+                                       };
+
+                                       ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
+                                               regulator-name = "V-MMC-SD";
+                                       };
+
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
+                                               regulator-name = "V-INTCORE";
+                                       };
+
+                                       ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
+                                               regulator-name = "V-TVOUT";
+                                       };
+
+                                       ab8500_ldo_audio_reg: ab8500_ldo_audio {
+                                               regulator-name = "V-AUD";
+                                       };
+
+                                       ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
+                                               regulator-name = "V-AMIC1";
+                                       };
+
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
+                                               regulator-name = "V-AMIC2";
+                                       };
+
+                                       ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
+                                               regulator-name = "V-DMIC";
+                                       };
+
+                                       ab8500_ldo_ana_reg: ab8500_ldo_ana {
+                                               regulator-name = "V-CSI/DSI";
+                                       };
+                               };
+
+                               gpio {
+                                       /* Hog a few default settings */
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&gpio2_default_mode>,
+                                                   <&gpio4_default_mode>,
+                                                   <&gpio10_default_mode>,
+                                                   <&gpio11_default_mode>,
+                                                   <&gpio12_default_mode>,
+                                                   <&gpio13_default_mode>,
+                                                   <&gpio16_default_mode>,
+                                                   <&gpio24_default_mode>,
+                                                   <&gpio25_default_mode>,
+                                                   <&gpio36_default_mode>,
+                                                   <&gpio37_default_mode>,
+                                                   <&gpio38_default_mode>,
+                                                   <&gpio39_default_mode>,
+                                                   <&gpio42_default_mode>,
+                                                   <&gpio26_default_mode>,
+                                                   <&gpio35_default_mode>,
+                                                   <&ycbcr_default_mode>,
+                                                   <&pwm_default_mode>,
+                                                   <&adi1_default_mode>,
+                                                   <&usbuicc_default_mode>,
+                                                   <&dmic_default_mode>,
+                                                   <&extcpena_default_mode>,
+                                                   <&modsclsda_default_mode>;
+
+                                       /*
+                                        * Pins 2, 4, 10, 11, 12, 13, 16, 24, 25, 36, 37, 38, 39 and 42
+                                        * are muxed in as GPIO, and configured as INPUT PULL DOWN
+                                        */
+                                       gpio2 {
+                                               gpio2_default_mode: gpio2_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio2_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO2_T9";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio4 {
+                                               gpio4_default_mode: gpio4_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio4_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO4_W2";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio10 {
+                                               gpio10_default_mode: gpio10_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio10_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO10_U17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio11 {
+                                               gpio11_default_mode: gpio11_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio11_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO11_AA18";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio12 {
+                                               gpio12_default_mode: gpio12_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio12_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO12_U16";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio13 {
+                                               gpio13_default_mode: gpio13_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio13_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO13_W17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio16 {
+                                               gpio16_default_mode: gpio16_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio16_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO16_F15";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio24 {
+                                               gpio24_default_mode: gpio24_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio24_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO24_T14";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio25 {
+                                               gpio25_default_mode: gpio25_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio25_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO25_R16";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio36 {
+                                               gpio36_default_mode: gpio36_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio36_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO36_A17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio37 {
+                                               gpio37_default_mode: gpio37_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio37_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO37_E15";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio38 {
+                                               gpio38_default_mode: gpio38_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio38_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO38_C17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio39 {
+                                               gpio39_default_mode: gpio39_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio39_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO39_E16";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       gpio42 {
+                                               gpio42_default_mode: gpio42_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio42_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO42_U2";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /*
+                                        * Pins 26 and 35 muxed in as GPIO, and configured as OUTPUT LOW
+                                        */
+                                       gpio26 {
+                                               gpio26_default_mode: gpio26_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio26_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO26_M16";
+                                                               output-low;
+                                                       };
+                                               };
+                                       };
+                                       gpio35 {
+                                               gpio35_default_mode: gpio35_default {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio35_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO35_W15";
+                                                               output-low;
+                                                       };
+                                               };
+                                       };
+                                       /*
+                                        * This sets up the YCBCR connector pins, i.e. analog video out.
+                                        * Set as input with no bias.
+                                        */
+                                       ycbcr {
+                                               ycbcr_default_mode: ycbcr_default {
+                                                       default_mux {
+                                                               function = "ycbcr";
+                                                               groups = "ycbcr0123_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO6_Y18",
+                                                                        "GPIO7_AA20",
+                                                                        "GPIO8_W18",
+                                                                        "GPIO9_AA19";
+                                                               input-enable;
+                                                               bias-disable;
+                                                       };
+                                               };
+                                       };
+                                       /* This sets up the PWM pins 14 and 15 */
+                                       pwm {
+                                               pwm_default_mode: pwm_default {
+                                                       default_mux {
+                                                               function = "pwmout";
+                                                               groups = "pwmout1_d_1", "pwmout2_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO14_F14",
+                                                                        "GPIO15_B17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /* This sets up audio interface 1 */
+                                       adi1 {
+                                               adi1_default_mode: adi1_default {
+                                                       default_mux {
+                                                               function = "adi1";
+                                                               groups = "adi1_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO17_P5",
+                                                                        "GPIO18_R5",
+                                                                        "GPIO19_U5",
+                                                                        "GPIO20_T5";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /* This sets up the USB UICC pins */
+                                       usbuicc {
+                                               usbuicc_default_mode: usbuicc_default {
+                                                       default_mux {
+                                                               function = "usbuicc";
+                                                               groups = "usbuicc_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO21_H19",
+                                                                        "GPIO22_G20",
+                                                                        "GPIO23_G19";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /* This sets up the microphone pins */
+                                       dmic {
+                                               dmic_default_mode: dmic_default {
+                                                       default_mux {
+                                                               function = "dmic";
+                                                               groups = "dmic12_d_1",
+                                                                        "dmic34_d_1",
+                                                                        "dmic56_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO27_J6",
+                                                                        "GPIO28_K6",
+                                                                        "GPIO29_G6",
+                                                                        "GPIO30_H6",
+                                                                        "GPIO31_F5",
+                                                                        "GPIO32_G5";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       extcpena {
+                                               extcpena_default_mode: extcpena_default {
+                                                       default_mux {
+                                                               function = "extcpena";
+                                                               groups = "extcpena_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO34_R17";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /* Modem I2C setup (SCL and SDA pins) */
+                                       modsclsda {
+                                               modsclsda_default_mode: modsclsda_default {
+                                                       default_mux {
+                                                               function = "modsclsda";
+                                                               groups = "modsclsda_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO40_T19",
+                                                                       "GPIO41_U19";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       /*
+                                        * Clock output pins associated with regulators.
+                                        */
+                                       sysclkreq2 {
+                                               sysclkreq2_default_mode: sysclkreq2_default {
+                                                       default_mux {
+                                                               function = "sysclkreq";
+                                                               groups = "sysclkreq2_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO1_T10";
+                                                               input-enable;
+                                                               bias-disable;
+                                                       };
+                                               };
+                                               sysclkreq2_sleep_mode: sysclkreq2_sleep {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio1_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO1_T10";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                                       sysclkreq4 {
+                                               sysclkreq4_default_mode: sysclkreq4_default {
+                                                       default_mux {
+                                                               function = "sysclkreq";
+                                                               groups = "sysclkreq4_d_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO3_U9";
+                                                               input-enable;
+                                                               bias-disable;
+                                                       };
+                                               };
+                                               sysclkreq4_sleep_mode: sysclkreq4_sleep {
+                                                       default_mux {
+                                                               function = "gpio";
+                                                               groups = "gpio3_a_1";
+                                                       };
+                                                       default_cfg {
+                                                               pins = "GPIO3_U9";
+                                                               input-enable;
+                                                               bias-pull-down;
+                                                       };
+                                               };
+                                       };
+                               };
+                               /*
+                                * Charging is not working on the HREF unless an actual battery is
+                                * mounted, most HREFs have a DC cable in to the "battery power"
+                                * which means this will only be cofusing. So do not enable charging
+                                * of the HREFs.
+                                */
+                               ab8500_fg {
+                                       status = "disabled";
+                               };
+                               ab8500_btemp {
+                                       status = "disabled";
+                               };
+                               ab8500_charger {
+                                       status = "disabled";
+                               };
+                               ab8500_chargalg {
+                                       status = "disabled";
+                               };
+                       };
+               };
+       };
+};
index 13b11dbeba1c1f87fe529fbfeb497af880808f55..fbf0309e108f05e3c4a008cf47c384efb6eaa1a0 100644 (file)
                        status = "okay";
                };
 
-               prcmu@80157000 {
-                       ab8500 {
-                               gpio {
-                               };
-
-                               phy {
-                                       pinctrl-names = "default", "sleep";
-                                       pinctrl-0 = <&usb_a_1_default>;
-                                       pinctrl-1 = <&usb_a_1_sleep>;
-                               };
-
-                               regulator {
-                                       ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
-                                               regulator-name = "V-DISPLAY";
-                                       };
-
-                                       ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
-                                               regulator-name = "V-eMMC1";
-                                       };
-
-                                       ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
-                                               regulator-name = "V-MMC-SD";
-                                       };
-
-                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
-                                               regulator-name = "V-INTCORE";
-                                       };
-
-                                       ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
-                                               regulator-name = "V-TVOUT";
-                                       };
-
-                                       ab8500_ldo_audio_reg: ab8500_ldo_audio {
-                                               regulator-name = "V-AUD";
-                                       };
-
-                                       ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
-                                               regulator-name = "V-AMIC1";
-                                       };
-
-                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
-                                               regulator-name = "V-AMIC2";
-                                       };
-
-                                       ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
-                                               regulator-name = "V-DMIC";
-                                       };
-
-                                       ab8500_ldo_ana_reg: ab8500_ldo_ana {
-                                               regulator-name = "V-CSI/DSI";
-                                       };
-                               };
-                       };
-               };
-
                pinctrl {
                        sdi0 {
                                sdi0_default_mode: sdi0_default {
index 7f661f8f13addb36d38d1c84584127b81b0204dd..5677df43c3acb1bf019ad828fe0d754655d7ced3 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "ste-db8520.dtsi"
+#include "ste-href-ab8505.dtsi"
 #include "ste-hrefv60plus.dtsi"
 #include "ste-href-tvk1281618-r3.dtsi"
 
index a29e345a43d33ea82bd7c57a93b3d91b241d37e1..b142bb2d38d8bb6a8367c5f2ad0121b951118a91 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "ste-db8500.dtsi"
+#include "ste-href-ab8500.dtsi"
 #include "ste-hrefprev60.dtsi"
 #include "ste-href-stuib.dtsi"
 
index 1968bd143114dc7be57fd432f58f62cc228b8798..5da1ff41b00e5d4520f5194d0bf8c62a4266f372 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "ste-db8500.dtsi"
+#include "ste-href-ab8500.dtsi"
 #include "ste-hrefprev60.dtsi"
 #include "ste-href-tvk1281618-r2.dtsi"
 
index 9859ee91a15ece7fbecc6c8f229b0ea9065632eb..c87fd27b4434568213a94ee6ce7feb4516b83341 100644 (file)
@@ -62,7 +62,7 @@
 
                // External Micro SD slot
                mmc@80126000 {
-                       cd-gpios  = <&tc3589x_gpio 3 GPIO_ACTIVE_HIGH>;
+                       cd-gpios = <&tc3589x_gpio 3 GPIO_ACTIVE_HIGH>;
                };
 
                pinctrl {
index 7a5b6aa1db5bf0ecc0049c2abd3a4574f8f5e76b..c4abe24a7cd0ddda4493a9a6803b2186d9b2f9c0 100644 (file)
@@ -7,6 +7,7 @@
 
 /dts-v1/;
 #include "ste-db8500.dtsi"
+#include "ste-href-ab8500.dtsi"
 #include "ste-hrefv60plus.dtsi"
 #include "ste-href-stuib.dtsi"
 
index d5af3f375161b6e161cbbada4664699c0bfe40d9..f55e8de2b516145e189489240254bbfe4119f96f 100644 (file)
@@ -7,6 +7,7 @@
 
 /dts-v1/;
 #include "ste-db8500.dtsi"
+#include "ste-href-ab8500.dtsi"
 #include "ste-hrefv60plus.dtsi"
 #include "ste-href-tvk1281618-r2.dtsi"
 
index e66fa59c2de64ebfd7d4cdf6e716784ce7d59396..b23966c16a32b90a81e4393da8b001066e42bb3f 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright 2012 ST-Ericsson AB
  */
 
-#include "ste-href-ab8500.dtsi"
 #include "ste-href.dtsi"
 
 / {
 
                // External Micro SD slot
                mmc@80126000 {
-                       cd-gpios  = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
+                       cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
                };
 
                pinctrl {
index 6816eef39d45040859c27383d2a657bd83e2683e..4d37c5fb553c8a03c68c7281f01157754f395431 100644 (file)
@@ -52,7 +52,7 @@
 
        gpio0: gpio@101e4000 {
                compatible = "st,nomadik-gpio";
-               reg =  <0x101e4000 0x80>;
+               reg = <0x101e4000 0x80>;
                interrupt-parent = <&vica>;
                interrupts = <6>;
                interrupt-controller;
@@ -66,7 +66,7 @@
 
        gpio1: gpio@101e5000 {
                compatible = "st,nomadik-gpio";
-               reg =  <0x101e5000 0x80>;
+               reg = <0x101e5000 0x80>;
                interrupt-parent = <&vica>;
                interrupts = <7>;
                interrupt-controller;
@@ -80,7 +80,7 @@
 
        gpio2: gpio@101e6000 {
                compatible = "st,nomadik-gpio";
-               reg =  <0x101e6000 0x80>;
+               reg = <0x101e6000 0x80>;
                interrupt-parent = <&vica>;
                interrupts = <8>;
                interrupt-controller;
@@ -94,7 +94,7 @@
 
        gpio3: gpio@101e7000 {
                compatible = "st,nomadik-gpio";
-               reg =  <0x101e7000 0x80>;
+               reg = <0x101e7000 0x80>;
                ngpio = <28>;
                interrupt-parent = <&vica>;
                interrupts = <9>;
index 27c2ec51e7325b950a922f1d7f2b756500a5d9ae..1322abfc7acfba595c044724f5ae876ed6568d1b 100644 (file)
                        pinctrl-1 = <&mc0_a_1_sleep>;
 
                        /* GPIO218 MMC_CD */
-                       cd-gpios  = <&gpio6 26 GPIO_ACTIVE_LOW>;
+                       cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
 
                        status = "okay";
                };
index 463942ae755ecb728636c264606abb9b04092af8..c623cc35c5ea23abb3d8883b2abf62ae199a2b0b 100644 (file)
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&mc0_a_2_default>;
                        pinctrl-1 = <&mc0_a_2_sleep>;
-                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
+                       cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
                        status = "okay";
                };
 
index c1ae0e23fe459619e54236ba938a10cfcd217b0a..2355ca6e9ad6c6ff3040801f4c805c44a5abcc0c 100644 (file)
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&mc0_a_2_default>;
                        pinctrl-1 = <&mc0_a_2_sleep>;
-                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
+                       cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
                        status = "okay";
                };
 
index b21e40da3dfdb4161d18dc2d956391ed54fa1b23..ad9a20ccaaebeccde829dbe653a3a0b782b6ec42 100644 (file)
                        pinctrl-0 = <&mc0_a_2_default>;
                        pinctrl-1 = <&mc0_a_2_sleep>;
                        /* "flash detect" actually card detect */
-                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>;
+                       cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>;
                        status = "okay";
                };
 
index 6e586e875565a453a9ba4193c95d6ae2b765a711..229f7c32103c5ca117f00b1044a6116015fd8a70 100644 (file)
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&mc0_a_2_default>;
                        pinctrl-1 = <&mc0_a_2_sleep>;
-                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
+                       cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
                        status = "okay";
                };
 
index ba4421080b2a55f15562ebbff0f0ccd69b5fd960..cdb147dcc1dbc12c66942db084c4e173eb745eea 100644 (file)
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&mc0_a_1_default>;
                        pinctrl-1 = <&mc0_a_1_sleep>;
-                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
+                       cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
                        status = "okay";
                };
 
index 576235ec3c516ee2136dd2b4a9c95a2ded61a3b3..afa417b34b25ffd7351885071e72989dd635b382 100644 (file)
                reg = <0x42>;
                interrupts = <8 3>;
                interrupt-parent = <&gpioi>;
-               interrupt-controller;
                wakeup-source;
 
                stmpegpio: stmpe_gpio {
index cbbd521bf010847ca06a28972cad4850d502d8c5..8a4f8ddd083d40252f1d872fd4e711bc125f4589 100644 (file)
                serial0 = &usart3;
        };
 
-       mmc_vcard: mmc_vcard {
+       vcc_3v3: vcc-3v3 {
                compatible = "regulator-fixed";
-               regulator-name = "mmc_vcard";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       vdd_dsi: vdd-dsi {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_dsi";
+               regulator-name = "vcc_3v3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
                compatible = "orisetech,otm8009a";
                reg = <0>; /* dsi virtual channel (0..3) */
                reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
-               power-supply = <&vdd_dsi>;
+               power-supply = <&vcc_3v3>;
                status = "okay";
 
                port {
 
 &sdio {
        status = "okay";
-       vmmc-supply = <&mmc_vcard>;
+       vmmc-supply = <&vcc_3v3>;
        cd-gpios = <&gpiog 2 GPIO_ACTIVE_LOW>;
        broken-cd;
        pinctrl-names = "default", "opendrain";
index 53a8e2dec9a4a1c3488e812b3be176fece6a9581..65c72b6fcc8311e66fd9bf03812bd7c98749b904 100644 (file)
                        clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
                };
 
+               spi2: spi@40003800 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40003800 0x400>;
+                       interrupts = <36>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(SPI2)>;
+                       status = "disabled";
+               };
+
+               spi3: spi@40003c00 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40003c00 0x400>;
+                       interrupts = <51>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(SPI3)>;
+                       status = "disabled";
+               };
+
                usart2: serial@40004400 {
                        compatible = "st,stm32f7-uart";
                        reg = <0x40004400 0x400>;
                        status = "disabled";
                };
 
+               spi1: spi@40013000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40013000 0x400>;
+                       interrupts = <35>;
+                       clocks = <&rcc 0 STM32F7_APB2_CLOCK(SPI1)>;
+                       status = "disabled";
+               };
+
+               spi4: spi@40013400 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40013400 0x400>;
+                       interrupts = <84>;
+                       clocks = <&rcc 0 STM32F7_APB2_CLOCK(SPI4)>;
+                       status = "disabled";
+               };
+
                syscfg: syscon@40013800 {
                        compatible = "st,stm32-syscfg", "syscon";
                        reg = <0x40013800 0x400>;
+                       clocks = <&rcc 0 STM32F7_APB2_CLOCK(SYSCFG)>;
                };
 
                exti: interrupt-controller@40013c00 {
                        };
                };
 
+               spi5: spi@40015000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40015000 0x400>;
+                       interrupts = <85>;
+                       clocks = <&rcc 0 STM32F7_APB2_CLOCK(SPI5)>;
+                       status = "disabled";
+               };
+
+               spi6: spi@40015400 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "st,stm32f7-spi";
+                       reg = <0x40015400 0x400>;
+                       interrupts = <86>;
+                       clocks = <&rcc 0 STM32F7_APB2_CLOCK(SPI6)>;
+                       status = "disabled";
+               };
+
                ltdc: display-controller@40016800 {
                        compatible = "st,stm32-ltdc";
                        reg = <0x40016800 0x200>;
index abf2acd37b4ea01b819dd03ab050fea5a0f30490..68d32f9f5314a686ac9fece344486d5a7d49aea5 100644 (file)
@@ -8,5 +8,16 @@
 
 / {
        soc {
+               dcmipp: dcmipp@5a000000 {
+                       compatible = "st,stm32mp13-dcmipp";
+                       reg = <0x5a000000 0x400>;
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&rcc DCMIPP_R>;
+                       clocks = <&rcc DCMIPP_K>;
+                       status = "disabled";
+
+                       port {
+                       };
+               };
        };
 };
index 61508917521c36e03be08be6fe9422b53ba793e6..fa4cbd312e5a1119543d47d4811afc3ff80a642d 100644 (file)
                        clocks = <&usbphyc>, <&rcc USBH>;
                        resets = <&rcc USBH_R>;
                        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
                };
 
                        resets = <&rcc USBH_R>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                        companion = <&usbh_ohci>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
                };
 
index dd23de85100c483386d35307fc93f1e03c987982..3938d357e198f47a1aecf41848c899ae1554e31c 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index afcd6285890cc0dad551573a83b81decb8ae459a..ce5937270aa1df73519c42f55024f11628ca8406 100644 (file)
@@ -11,7 +11,7 @@
 
 / {
        model = "STMicroelectronics STM32MP157A-DK1 SCMI Discovery Board";
-       compatible = "st,stm32mp157a-dk1-scmi", "st,stm32mp157a-dk1", "st,stm32mp157";
+       compatible = "st,stm32mp157a-dk1-scmi", "st,stm32mp157";
 
        reserved-memory {
                optee@de000000 {
@@ -59,7 +59,7 @@
        /delete-property/ st,syscfg-holdboot;
        resets = <&scmi_reset RST_SCMI_MCU>,
                 <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
-       reset-names =  "mcu_rst", "hold_boot";
+       reset-names = "mcu_rst", "hold_boot";
 };
 
 &rcc {
index 5f85598cc7c6bc8edccc24a67ddb5ff281c37145..5c1cc48e5199f0e9f1579431942c08db50745ee9 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index 39358d9020003153e9c3ba1a523675a6118d81be..c20a73841c1f67d3dc6b43941fa6cc064455f057 100644 (file)
@@ -11,7 +11,7 @@
 
 / {
        model = "STMicroelectronics STM32MP157C-DK2 SCMI Discovery Board";
-       compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157c-dk2", "st,stm32mp157";
+       compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157";
 
        reserved-memory {
                optee@de000000 {
@@ -65,7 +65,7 @@
        /delete-property/ st,syscfg-holdboot;
        resets = <&scmi_reset RST_SCMI_MCU>,
                 <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
-       reset-names =  "mcu_rst", "hold_boot";
+       reset-names = "mcu_rst", "hold_boot";
 };
 
 &rcc {
index 510cca5acb79ca449dc11ba043475cfc43becc4c..7a701f7ef0c70467181e71719f17712ca4341562 100644 (file)
@@ -64,7 +64,6 @@
                reg = <0x38>;
                interrupts = <2 2>;
                interrupt-parent = <&gpiof>;
-               interrupt-controller;
                touchscreen-size-x = <480>;
                touchscreen-size-y = <800>;
                status = "okay";
index 07ea765a4553a5f6a21ed498b8412bd5cfb3dd18..5e2eaf57ce22f1cfc08a688c497638c314df6373 100644 (file)
@@ -11,7 +11,7 @@
 
 / {
        model = "STMicroelectronics STM32MP157C-ED1 SCMI eval daughter";
-       compatible = "st,stm32mp157c-ed1-scmi", "st,stm32mp157c-ed1", "st,stm32mp157";
+       compatible = "st,stm32mp157c-ed1-scmi", "st,stm32mp157";
 
        reserved-memory {
                optee@fe000000 {
@@ -64,7 +64,7 @@
        /delete-property/ st,syscfg-holdboot;
        resets = <&scmi_reset RST_SCMI_MCU>,
                 <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
-       reset-names =  "mcu_rst", "hold_boot";
+       reset-names = "mcu_rst", "hold_boot";
 };
 
 &rcc {
index f928cfb80b87cf8945289d3e21eba18b37082533..4792004cab0cc79a6440cfc936c1cb973fd16c64 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index 813086ec248959295707f0b26dabc8c77f62c10c..3226fb945a8ec786686f600a7312d947b8da660f 100644 (file)
@@ -11,8 +11,7 @@
 
 / {
        model = "STMicroelectronics STM32MP157C-EV1 SCMI eval daughter on eval mother";
-       compatible = "st,stm32mp157c-ev1-scmi", "st,stm32mp157c-ev1", "st,stm32mp157c-ed1",
-                    "st,stm32mp157";
+       compatible = "st,stm32mp157c-ev1-scmi", "st,stm32mp157c-ed1", "st,stm32mp157";
 
        reserved-memory {
                optee@fe000000 {
@@ -70,7 +69,7 @@
        /delete-property/ st,syscfg-holdboot;
        resets = <&scmi_reset RST_SCMI_MCU>,
                 <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
-       reset-names =  "mcu_rst", "hold_boot";
+       reset-names = "mcu_rst", "hold_boot";
 };
 
 &rcc {
index cd9c3ff5378bd6f83b9cad29f05b64e6ceeef577..9eb9a1bf4f2c14eedc982034c7cfab35ba257419 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
index bd67a1db9122087ff649195126ff9b6ae44c446e..527c33be66cc003d27d83180a3650dbd27b9009a 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index 4e8b2d2b30c7abcb3a1e5afa1ffcac13348bb177..bf0c32027baf7654a406392b301e4fb4b580f3a5 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index f09b7c384bd93139f6e2b7327fe07710fc623159..fc3a2386dbb90de2b6931e74f90d430e8ff4343a 100644 (file)
@@ -567,9 +567,6 @@ baseboard_eeprom: &sip_eeprom {
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
-
        status = "okay";
 };
 
index 35b1034aa3cf63f6cfa438f8f7f7a506e3bd6bf6..bb4f8a0b937f37f6b3fc50d3bbe58c786030852c 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
index 46b87a27d8b378fa52ee8ede3a23dd9a4c7424d7..466d9701add0f69b4e6d8737dc0531411c190b54 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
index abc595350e71a09905ffc256f6baeee927958438..b5bc53accd6b2f54ca99d8188dfe33d77adec092 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
index 0069ad75d55e5e14ba530756a314e3c83fc889be..343a4613dfca7c9a3d5e8a68d8fcf34ca649db69 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index 92d906bfd5d7d696e73299e0dbc8d0a6cb5f9275..bc4ddcbdd5cf6b1058a452ceb93956265872ebc2 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
index ab7f0ba49639688f338930aae81d0e0acd59f86d..6e79c4b6fe325f364889b97332a6c97a06fe6ba4 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
 &usbh_ohci {
-       phys = <&usbphyc_port0>;
        status = "okay";
 };
 
index 511113f2e39928ed337d2d0484c9f66ff611fd59..f7634c51efb26f3dee33dd49d29237499bcd6bb0 100644 (file)
 };
 
 &usbh_ehci {
-       phys = <&usbphyc_port0>;
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
index bff73a0ed10bfb36873b603bb45e8a5cb7408f10..5c88a90903b8452a1062d7043b925021f7b12cd2 100644 (file)
@@ -36,9 +36,9 @@ qmss: qmss@2a40000 {
                qpend {
                        qpend-0 {
                                qrange = <658 8>;
-                               interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
-                                            0 43 0xf04 0 44 0xf04 0 45 0xf04
-                                            0 46 0xf04 0 47 0xf04>;
+                               interrupts = <0 40 0xf04 0 41 0xf04 0 42 0xf04
+                                             0 43 0xf04 0 44 0xf04 0 45 0xf04
+                                             0 46 0xf04 0 47 0xf04>;
                        };
                        qpend-1 {
                                qrange = <528 16>;
index 7bfc80f1af26bb0fbd7830714d70740699d766e5..f0ddbbcdc9721595f8a2fc93f7bfa9f614b1f4eb 100644 (file)
@@ -9,7 +9,7 @@
 #include "keystone-k2g.dtsi"
 
 / {
-       compatible =  "ti,k2g-evm", "ti,k2g", "ti,keystone";
+       compatible = "ti,k2g-evm", "ti,k2g", "ti,keystone";
        model = "Texas Instruments K2G General Purpose EVM";
 
        memory@800000000 {
index f6306933ff426bf6fb6ae3d0a2b637e9f3f49235..7109ca0316175d68a521bd6565720ceb658c7dab 100644 (file)
@@ -37,9 +37,9 @@ qmss: qmss@4020000 {
                qpend {
                        qpend-0 {
                                qrange = <77 8>;
-                               interrupts =<0 308 0xf04 0 309 0xf04 0 310 0xf04
-                                            0 311 0xf04 0 312 0xf04 0 313 0xf04
-                                            0 314 0xf04 0 315 0xf04>;
+                               interrupts = <0 308 0xf04 0 309 0xf04 0 310 0xf04
+                                             0 311 0xf04 0 312 0xf04 0 313 0xf04
+                                             0 314 0xf04 0 315 0xf04>;
                                qalloc-by-id;
                        };
                };
index 206df8a8d9dd7de2de16df712680cceca890fd5a..8dfb54295027e8394f9d0e110fc20b7a72a3c287 100644 (file)
@@ -10,7 +10,7 @@
 #include "keystone-k2hk.dtsi"
 
 / {
-       compatible =  "ti,k2hk-evm", "ti,k2hk", "ti,keystone";
+       compatible = "ti,k2hk-evm", "ti,k2hk", "ti,keystone";
        model = "Texas Instruments Keystone 2 Kepler/Hawking EVM";
 
        reserved-memory {
index 8a421c65f9209e6936a9d72b8d3c6252d60308fa..c2ee775eab6aed4a16402b996e5f41acafb07c7f 100644 (file)
@@ -49,9 +49,9 @@ qmss: qmss@2a40000 {
                qpend {
                        qpend-0 {
                                qrange = <658 8>;
-                               interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
-                                            0 43 0xf04 0 44 0xf04 0 45 0xf04
-                                            0 46 0xf04 0 47 0xf04>;
+                               interrupts = <0 40 0xf04 0 41 0xf04 0 42 0xf04
+                                             0 43 0xf04 0 44 0xf04 0 45 0xf04
+                                             0 46 0xf04 0 47 0xf04>;
                        };
                        qpend-1 {
                                qrange = <8704 16>;
index 5ec6680a533da8b4e1ab180f4cc93c10c1a9a5d8..1afebd7458c1138d724ca1547dd599ce1952225f 100644 (file)
@@ -36,9 +36,9 @@ qmss: qmss@2a40000 {
                qpend {
                        qpend-0 {
                                qrange = <658 8>;
-                               interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
-                                            0 43 0xf04 0 44 0xf04 0 45 0xf04
-                                            0 46 0xf04 0 47 0xf04>;
+                               interrupts = <0 40 0xf04 0 41 0xf04 0 42 0xf04
+                                             0 43 0xf04 0 44 0xf04 0 45 0xf04
+                                             0 46 0xf04 0 47 0xf04>;
                        };
                        qpend-1 {
                                qrange = <528 16>;
index b8730aa52ce6fe521a1b531be42c4ef891c969b5..a59331aa58e55e3ef514fc06b5a36472c901dcd3 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi1_pins>;
 
-       tpm_spi_tis@0 {
+       tpm@0 {
                compatible = "tcg,tpm_tis-spi";
                reg = <0>;
                spi-max-frequency = <500000>;
index 48425020281a9a3f633b4ebc1feaa741a1ea6a21..322cf79d22e99629879248c7e6d110427ec5473c 100644 (file)
 };
 
 &extcon_usb2 {
-       id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
-       vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>;
+       id-gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&gpio7 22 GPIO_ACTIVE_HIGH>;
 };
 
 &sn65hvs882 {
index 9a234dc1431d12a06ad5e34886a53c3b10da0f8b..3e834fc7e3707d4573b75cbfd89a49423c3ec6a5 100644 (file)
        extcon_usb1: extcon_usb1 {
                compatible = "linux,extcon-usb-gpio";
                ti,enable-id-detection;
-               id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
        };
 };
 
                reg = <0x41>;
                interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&gpio2>;
-               interrupt-controller;
                id = <0>;
                blocks = <0x5>;
                irq-trigger = <0x1>;
index 1d66278c3a722092ee8822087ee9a0b1cdd2c1c1..3fca84819dc0ce5592489b50318d49575a330faf 100644 (file)
 };
 
 &extcon_usb2 {
-       id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
-       vbus-gpio = <&gpio3 26 GPIO_ACTIVE_HIGH>;
+       id-gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>;
 };
 
 &sn65hvs882 {
index 4cdffd6db74073a820b3e68670cdb247c04baada..ed5199d7acd843ca794501ff9a1e75eab9290857 100644 (file)
 
        extcon_usb1: extcon_usb1 {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
        };
 
        extcon_usb2: extcon_usb2 {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
        };
 
        sound0: sound0 {
index a64364443031525ba4a3f0e197faaefc60ea416b..f747ac56eb9278909574a686f66f50c73b6bba36 100644 (file)
 };
 
 &extcon_usb1 {
-       vbus-gpio = <&pcf_lcd 14 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&pcf_lcd 14 GPIO_ACTIVE_HIGH>;
 };
 
 &extcon_usb2 {
-       vbus-gpio = <&pcf_lcd 15 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&pcf_lcd 15 GPIO_ACTIVE_HIGH>;
 };
 
 &ipu2 {
index 31ab0c60ca75e02e924f3dd9ec630ad6249fee8e..f8151c61488e146b0bd601c5e67b8b7477469757 100644 (file)
 
        extcon_usb1: extcon_usb1 {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
        };
 
        extcon_usb2: extcon_usb2 {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
+               id-gpios = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
        };
 
        hdmi0: connector {
index 57868ac60d29855fea916089f14b21f179a4e803..cf9c3d35b04992e6714173e1c4a5fdefcbc4a3b6 100644 (file)
 };
 
 &extcon_usb1 {
-       vbus-gpio = <&pcf_lcd 14 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&pcf_lcd 14 GPIO_ACTIVE_HIGH>;
 };
 
 &extcon_usb2 {
-       vbus-gpio = <&pcf_lcd 15 GPIO_ACTIVE_HIGH>;
+       vbus-gpios = <&pcf_lcd 15 GPIO_ACTIVE_HIGH>;
 };
 
 &m_can0 {
index 533ce7ce387a54891b8e0ee25e8ba79fa554d0f2..fbff15a0a0fe9e3a7e158b831100533b0a2a628d 100644 (file)
@@ -52,7 +52,7 @@
 
 &uart2 {
        /delete-property/dma-names;
-       bluetooth {
+       bluetooth-gnss {
                compatible = "ti,wl1283-st";
                enable-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* gpio 162 */
                max-speed = <3000000>;
index a2bb3609c94feb258e4220bd3d87cba3a85b3e68..a0c53d9c26255a9c13f3254a382fbf526ceb896a 100644 (file)
@@ -6,15 +6,6 @@
 #include "motorola-cpcap-mapphone.dtsi"
 
 / {
-       chosen {
-               stdout-path = &uart3;
-       };
-
-       aliases {
-               display0 = &lcd0;
-               display1 = &hdmi0;
-       };
-
        /*
         * We seem to have only 1021 MB accessible, 1021 - 1022 is locked,
         * then 1023 - 1024 seems to contain mbm.
                regulator-always-on;
        };
 
-       /* FS USB Host PHY on port 1 for mdm6600 */
-       fsusb1_phy: usb-phy@1 {
-               compatible = "motorola,mapphone-mdm6600";
-               pinctrl-0 = <&usb_mdm6600_pins>;
-               pinctrl-1 = <&usb_mdm6600_sleep_pins>;
-               pinctrl-names = "default", "sleep";
-               enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;     /* gpio_95 */
-               power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;     /* gpio_54 */
-               reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;     /* gpio_49 */
-               /* mode: gpio_148 gpio_149 */
-               motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>,
-                                     <&gpio5 21 GPIO_ACTIVE_HIGH>;
-               /* cmd: gpio_103 gpio_104 gpio_142 */
-               motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>,
-                                    <&gpio4 8 GPIO_ACTIVE_HIGH>,
-                                    <&gpio5 14 GPIO_ACTIVE_HIGH>;
-               /* status: gpio_52 gpio_53 gpio_55 */
-               motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>,
-                                       <&gpio2 21 GPIO_ACTIVE_HIGH>,
-                                       <&gpio2 23 GPIO_ACTIVE_HIGH>;
-               #phy-cells = <0>;
-       };
-
-       /* HS USB host TLL nop-phy on port 2 for w3glte */
-       hsusb2_phy: usb-phy@2 {
-               compatible = "usb-nop-xceiv";
-               #phy-cells = <0>;
-       };
-
-       /* LCD regulator from sw5 source */
-       lcd_regulator: regulator-lcd {
-               compatible = "regulator-fixed";
-               regulator-name = "lcd";
-               regulator-min-microvolt = <5050000>;
-               regulator-max-microvolt = <5050000>;
-               gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>;     /* gpio96 */
-               enable-active-high;
-               vin-supply = <&sw5>;
-       };
-
        /* This is probably coming straight from the battery.. */
        wl12xx_vmmc: regulator-wl12xx {
                compatible = "regulator-fixed";
 
                dais = <&mcbsp2_port>, <&mcbsp3_port>;
        };
-
-       pwm8: pwm-8 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&vibrator_direction_pin>;
-
-               compatible = "ti,omap-dmtimer-pwm";
-               #pwm-cells = <3>;
-               ti,timers = <&timer8>;
-               ti,clock-source = <0x01>;
-       };
-
-       pwm9: pwm-9 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&vibrator_enable_pin>;
-
-               compatible = "ti,omap-dmtimer-pwm";
-               #pwm-cells = <3>;
-               ti,timers = <&timer9>;
-               ti,clock-source = <0x01>;
-       };
-
-       vibrator {
-               compatible = "pwm-vibrator";
-               pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>;
-               pwm-names = "enable", "direction";
-               direction-duty-cycle-ns = <10000000>;
-       };
-
-       backlight: backlight {
-               compatible = "led-backlight";
-
-               leds = <&backlight_led>;
-               brightness-levels = <31 63 95 127 159 191 223 255>;
-               default-brightness-level = <6>;
-       };
 };
 
 &cpu_thermal {
        status = "okay";
 };
 
-&dsi1 {
-       status = "okay";
-       vdd-supply = <&vcsi>;
-
-       port {
-               dsi1_out_ep: endpoint {
-                       remote-endpoint = <&lcd0_in>;
-                       lanes = <0 1 2 3 4 5>;
-               };
-       };
-
-       lcd0: panel@0 {
-               compatible = "motorola,droid4-panel", "panel-dsi-cm";
-               reg = <0>;
-               label = "lcd0";
-               vddi-supply = <&lcd_regulator>;
-               reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;      /* gpio101 */
-
-               backlight = <&backlight>;
-
-               width-mm = <50>;
-               height-mm = <89>;
-               rotation = <90>;
-
-               panel-timing {
-                       clock-frequency = <0>;          /* Calculated by dsi */
-
-                       hback-porch = <2>;
-                       hactive = <540>;
-                       hfront-porch = <0>;
-                       hsync-len = <2>;
-
-                       vback-porch = <1>;
-                       vactive = <960>;
-                       vfront-porch = <0>;
-                       vsync-len = <1>;
-
-                       hsync-active = <0>;
-                       vsync-active = <0>;
-                       de-active = <1>;
-                       pixelclk-active = <1>;
-               };
-
-               port {
-                       lcd0_in: endpoint {
-                               remote-endpoint = <&dsi1_out_ep>;
-                       };
-               };
-       };
-};
-
 &hdmi {
        status = "okay";
        pinctrl-0 = <&dss_hdmi_pins>;
        };
 };
 
-/* Battery NVRAM on 1-wire handled by w1_ds250x driver */
-&hdqw1w {
-       pinctrl-0 = <&hdq_pins>;
-       pinctrl-names = "default";
-       ti,mode = "1w";
-};
-
 &i2c1 {
        tmp105@48 {
                compatible = "ti,tmp105";
        };
 };
 
-&i2c2 {
-       touchscreen@4a {
-               compatible = "atmel,maxtouch";
-               reg = <0x4a>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&touchscreen_pins>;
-
-               reset-gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; /* gpio173 */
-
-               /* gpio_183 with sys_nirq2 pad as wakeup */
-               interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>,
-                                     <&omap4_pmx_core 0x160>;
-               interrupt-names = "irq", "wakeup";
-               wakeup-source;
-       };
-
-       isl29030@44 {
-               compatible = "isil,isl29030";
-               reg = <0x44>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&als_proximity_pins>;
-
-               interrupt-parent = <&gpio6>;
-               interrupts = <17 IRQ_TYPE_LEVEL_LOW>; /* gpio177 */
-       };
-};
-
 &omap4_pmx_core {
 
        /* hdmi_hpd.gpio_63 */
                >;
        };
 
-       hdq_pins: hdq-pins {
-               pinctrl-single,pins = <
-               /* 0x4a100120 hdq_sio.hdq_sio aa27 */
-               OMAP4_IOPAD(0x120, PIN_INPUT | MUX_MODE0)
-               >;
-       };
-
        /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */
        dss_hdmi_pins: dss-hdmi-pins {
                pinctrl-single,pins = <
                >;
        };
 
-       touchscreen_pins: touchscreen-pins {
-               pinctrl-single,pins = <
-               OMAP4_IOPAD(0x180, PIN_OUTPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3)
-               >;
-       };
-
-       als_proximity_pins: als-proximity-pins {
-               pinctrl-single,pins = <
-               OMAP4_IOPAD(0x18c, PIN_INPUT_PULLUP | MUX_MODE3)
-               >;
-       };
-
-       usb_mdm6600_pins: usb-mdm6600-pins {
-               pinctrl-single,pins = <
-               /* enable 0x4a1000d8 usbb1_ulpitll_dat7.gpio_95 ag16 */
-               OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3)
-
-               /* power 0x4a10007c gpmc_nwp.gpio_54 c25 */
-               OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)
-
-               /* reset 0x4a100072 gpmc_a25.gpio_49 d20 */
-               OMAP4_IOPAD(0x072, PIN_OUTPUT | MUX_MODE3)
-
-               /* mode0/bpwake 0x4a10014e sdmmc5_dat1.gpio_148 af4 */
-               OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3)
-
-               /* mode1/apwake 0x4a100150 sdmmc5_dat2.gpio_149 ag3 */
-               OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3)
-
-               /* status0 0x4a10007e gpmc_clk.gpio_55 b22 */
-               OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3)
-
-               /* status1 0x4a10007a gpmc_ncs3.gpio_53 c22 */
-               OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)
-
-               /* status2 0x4a100078 gpmc_ncs2.gpio_52 d21 */
-               OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)
-
-               /* cmd0 0x4a100094 gpmc_ncs6.gpio_103 c24 */
-               OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
-
-               /* cmd1 0x4a100096 gpmc_ncs7.gpio_104 d24 */
-               OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
-
-               /* cmd2 0x4a100142 uart3_rts_sd.gpio_142 f28 */
-               OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3)
-               >;
-       };
-
-       /* Modem sleep pins to keep gpio_49 high with internal pull */
-       usb_mdm6600_sleep_pins: usb-mdm6600-sleep-pins {
-               pinctrl-single,pins = <
-               OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x072, PIN_INPUT_PULLUP | MUX_MODE7) /* Keep gpio_49 reset high */
-               OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
-               OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3)
-               >;
-       };
-
        usb_ulpi_pins: usb-ulpi-pins {
                pinctrl-single,pins = <
                OMAP4_IOPAD(0x196, MUX_MODE7)
                OMAP4_IOPAD(0x10c, PIN_INPUT | MUX_MODE1)       /* abe_mcbsp3_fsx */
                >;
        };
-
-       vibrator_direction_pin: vibrator-direction-pins {
-               pinctrl-single,pins = <
-               OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1)      /* dmtimer8_pwm_evt (gpio_27) */
-               >;
-       };
-
-       vibrator_enable_pin: vibrator-enable-pins {
-               pinctrl-single,pins = <
-               OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1)      /* dmtimer9_pwm_evt (gpio_28) */
-               >;
-       };
 };
 
 &omap4_pmx_wkup {
        status = "disabled";
 };
 
-/* Configure pwm clock source for timers 8 & 9 */
-&timer8 {
-       assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
-       assigned-clock-parents = <&sys_32k_ck>;
-};
-
-&timer9 {
-       assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
-       assigned-clock-parents = <&sys_32k_ck>;
-};
-
 /*
  * The uart1 port is wired to mdm6600 with rts and cts. The modem uses gpio_149
  * for wake-up events for both the USB PHY and the UART. We can use gpio_149
        };
 };
 
-&usbhsohci {
-       phys = <&fsusb1_phy>;
-       phy-names = "usb";
-};
-
-&usbhsehci {
-       phys = <&hsusb2_phy>;
-};
-
-&usbhshost {
-       port1-mode = "ohci-phy-4pin-dpdm";
-       port2-mode = "ehci-tll";
-};
-
 /* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */
 &usb_otg_hs {
        interface-type = <1>;
        power = <150>;
 };
 
-&i2c4 {
-       ak8975: magnetometer@c {
-               compatible = "asahi-kasei,ak8975";
-               reg = <0x0c>;
-
-               vdd-supply = <&vhvio>;
-
-               interrupt-parent = <&gpio6>;
-               interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */
-
-               rotation-matrix = "-1", "0", "0",
-                                 "0", "1", "0",
-                                 "0", "0", "-1";
-
-       };
-};
-
 &mcbsp2 {
        #sound-dai-cells = <0>;
        pinctrl-names = "default";
diff --git a/src/arm/ti/omap/motorola-mapphone-handset.dtsi b/src/arm/ti/omap/motorola-mapphone-handset.dtsi
new file mode 100644 (file)
index 0000000..f3f9ff0
--- /dev/null
@@ -0,0 +1,234 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/dts-v1/;
+
+#include "motorola-mapphone-common.dtsi"
+
+/ {
+       /* FS USB Host PHY on port 1 for mdm6600 */
+       fsusb1_phy: usb-phy@1 {
+               compatible = "motorola,mapphone-mdm6600";
+               pinctrl-0 = <&usb_mdm6600_pins>;
+               pinctrl-1 = <&usb_mdm6600_sleep_pins>;
+               pinctrl-names = "default", "sleep";
+               enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;     /* gpio_95 */
+               power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;     /* gpio_54 */
+               reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;     /* gpio_49 */
+               /* mode: gpio_148 gpio_149 */
+               motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>,
+                                     <&gpio5 21 GPIO_ACTIVE_HIGH>;
+               /* cmd: gpio_103 gpio_104 gpio_142 */
+               motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>,
+                                    <&gpio4 8 GPIO_ACTIVE_HIGH>,
+                                    <&gpio5 14 GPIO_ACTIVE_HIGH>;
+               /* status: gpio_52 gpio_53 gpio_55 */
+               motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>,
+                                       <&gpio2 21 GPIO_ACTIVE_HIGH>,
+                                       <&gpio2 23 GPIO_ACTIVE_HIGH>;
+               #phy-cells = <0>;
+       };
+
+       /* HS USB host TLL nop-phy on port 2 for w3glte */
+       hsusb2_phy: usb-phy@2 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+       };
+
+       pwm8: pwm-8 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&vibrator_direction_pin>;
+
+               compatible = "ti,omap-dmtimer-pwm";
+               #pwm-cells = <3>;
+               ti,timers = <&timer8>;
+               ti,clock-source = <0x01>;
+       };
+
+       pwm9: pwm-9 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&vibrator_enable_pin>;
+
+               compatible = "ti,omap-dmtimer-pwm";
+               #pwm-cells = <3>;
+               ti,timers = <&timer9>;
+               ti,clock-source = <0x01>;
+       };
+
+       vibrator {
+               compatible = "pwm-vibrator";
+               pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>;
+               pwm-names = "enable", "direction";
+               direction-duty-cycle-ns = <10000000>;
+       };
+};
+
+/* Battery NVRAM on 1-wire handled by w1_ds250x driver */
+&hdqw1w {
+       pinctrl-0 = <&hdq_pins>;
+       pinctrl-names = "default";
+       ti,mode = "1w";
+};
+
+&i2c2 {
+       touchscreen@4a {
+               compatible = "atmel,maxtouch";
+               reg = <0x4a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touchscreen_pins>;
+
+               reset-gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; /* gpio173 */
+
+               /* gpio_183 with sys_nirq2 pad as wakeup */
+               interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>,
+                                     <&omap4_pmx_core 0x160>;
+               interrupt-names = "irq", "wakeup";
+               wakeup-source;
+       };
+
+       isl29030@44 {
+               compatible = "isil,isl29030";
+               reg = <0x44>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&als_proximity_pins>;
+
+               interrupt-parent = <&gpio6>;
+               interrupts = <17 IRQ_TYPE_LEVEL_LOW>; /* gpio177 */
+       };
+};
+
+&omap4_pmx_core {
+       hdq_pins: hdq-pins {
+               pinctrl-single,pins = <
+               /* 0x4a100120 hdq_sio.hdq_sio aa27 */
+               OMAP4_IOPAD(0x120, PIN_INPUT | MUX_MODE0)
+               >;
+       };
+
+       /* kpd_row0.gpio_178 */
+       tmp105_irq: tmp105-irq-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x18e, PIN_INPUT_PULLUP | MUX_MODE3)
+               >;
+       };
+
+       touchscreen_pins: touchscreen-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x180, PIN_OUTPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3)
+               >;
+       };
+
+       usb_mdm6600_pins: usb-mdm6600-pins {
+               pinctrl-single,pins = <
+               /* enable 0x4a1000d8 usbb1_ulpitll_dat7.gpio_95 ag16 */
+               OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3)
+
+               /* power 0x4a10007c gpmc_nwp.gpio_54 c25 */
+               OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)
+
+               /* reset 0x4a100072 gpmc_a25.gpio_49 d20 */
+               OMAP4_IOPAD(0x072, PIN_OUTPUT | MUX_MODE3)
+
+               /* mode0/bpwake 0x4a10014e sdmmc5_dat1.gpio_148 af4 */
+               OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3)
+
+               /* mode1/apwake 0x4a100150 sdmmc5_dat2.gpio_149 ag3 */
+               OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3)
+
+               /* status0 0x4a10007e gpmc_clk.gpio_55 b22 */
+               OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3)
+
+               /* status1 0x4a10007a gpmc_ncs3.gpio_53 c22 */
+               OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)
+
+               /* status2 0x4a100078 gpmc_ncs2.gpio_52 d21 */
+               OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)
+
+               /* cmd0 0x4a100094 gpmc_ncs6.gpio_103 c24 */
+               OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
+
+               /* cmd1 0x4a100096 gpmc_ncs7.gpio_104 d24 */
+               OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
+
+               /* cmd2 0x4a100142 uart3_rts_sd.gpio_142 f28 */
+               OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3)
+               >;
+       };
+
+       /* Modem sleep pins to keep gpio_49 high with internal pull */
+       usb_mdm6600_sleep_pins: usb-mdm6600-sleep-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x072, PIN_INPUT_PULLUP | MUX_MODE7) /* Keep gpio_49 reset high */
+               OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
+               OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3)
+               >;
+       };
+
+       als_proximity_pins: als-proximity-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x18c, PIN_INPUT_PULLUP | MUX_MODE3)
+               >;
+       };
+
+       vibrator_direction_pin: vibrator-direction-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1)      /* dmtimer8_pwm_evt (gpio_27) */
+               >;
+       };
+
+       vibrator_enable_pin: vibrator-enable-pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1)      /* dmtimer9_pwm_evt (gpio_28) */
+               >;
+       };
+};
+
+/* Configure pwm clock source for timers 8 & 9 */
+&timer8 {
+       assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
+       assigned-clock-parents = <&sys_32k_ck>;
+};
+
+&timer9 {
+       assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
+       assigned-clock-parents = <&sys_32k_ck>;
+};
+
+&usbhsohci {
+       phys = <&fsusb1_phy>;
+       phy-names = "usb";
+};
+
+&usbhsehci {
+       phys = <&hsusb2_phy>;
+};
+
+&usbhshost {
+       port1-mode = "ohci-phy-4pin-dpdm";
+       port2-mode = "ehci-tll";
+};
+
+&i2c4 {
+       ak8975: magnetometer@c {
+               compatible = "asahi-kasei,ak8975";
+               reg = <0x0c>;
+
+               vdd-supply = <&vhvio>;
+
+               interrupt-parent = <&gpio6>;
+               interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */
+
+               rotation-matrix = "-1", "0", "0",
+                                 "0", "1", "0",
+                                 "0", "0", "-1";
+
+       };
+};
diff --git a/src/arm/ti/omap/motorola-mapphone-mz607-mz617.dtsi b/src/arm/ti/omap/motorola-mapphone-mz607-mz617.dtsi
new file mode 100644 (file)
index 0000000..a356b3a
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/dts-v1/;
+
+#include "motorola-mapphone-common.dtsi"
+
+&keypad {
+       keypad,num-rows = <8>;
+       keypad,num-columns = <8>;
+       linux,keymap = <MATRIX_KEY(5, 0, KEY_VOLUMEUP)>,
+                      <MATRIX_KEY(3, 0, KEY_VOLUMEDOWN)>;
+};
+
+/*
+ * On tablets, mmc1 regulator is vsimcard instead of vwlan2 in the stock kernel
+ * dtb. The regulator may not be wired even if a MMC cage is added though.
+ */
+&mmc1 {
+       vmmc-supply = <&vsimcard>;
+       bus-width = <4>;
+       cd-gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* gpio_176 */
+};
diff --git a/src/arm/ti/omap/motorola-mapphone-xt8xx.dtsi b/src/arm/ti/omap/motorola-mapphone-xt8xx.dtsi
new file mode 100644 (file)
index 0000000..8b8de92
--- /dev/null
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/dts-v1/;
+
+#include "motorola-mapphone-handset.dtsi"
+
+/ {
+       backlight: backlight {
+               compatible = "led-backlight";
+
+               leds = <&backlight_led>;
+               brightness-levels = <31 63 95 127 159 191 223 255>;
+               default-brightness-level = <6>;
+       };
+
+       /* LCD regulator from sw5 source */
+       lcd_regulator: regulator-lcd {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd";
+               regulator-min-microvolt = <5050000>;
+               regulator-max-microvolt = <5050000>;
+               gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>;     /* gpio96 */
+               enable-active-high;
+               vin-supply = <&sw5>;
+       };
+};
+
+&dsi1 {
+       status = "okay";
+       vdd-supply = <&vcsi>;
+
+       port {
+               dsi1_out_ep: endpoint {
+                       remote-endpoint = <&lcd0_in>;
+                       lanes = <0 1 2 3 4 5>;
+               };
+       };
+
+       lcd0: panel@0 {
+               compatible = "motorola,droid4-panel", "panel-dsi-cm";
+               reg = <0>;
+               label = "lcd0";
+               vddi-supply = <&lcd_regulator>;
+               reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;      /* gpio101 */
+               backlight = <&backlight>;
+
+               width-mm = <50>;
+               height-mm = <89>;
+               rotation = <90>;
+
+               panel-timing {
+                       clock-frequency = <0>;          /* Calculated by dsi */
+
+                       hback-porch = <2>;
+                       hactive = <540>;
+                       hfront-porch = <0>;
+                       hsync-len = <2>;
+
+                       vback-porch = <1>;
+                       vactive = <960>;
+                       vfront-porch = <0>;
+                       vsync-len = <1>;
+
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+
+               port {
+                       lcd0_in: endpoint {
+                               remote-endpoint = <&dsi1_out_ep>;
+                       };
+               };
+       };
+};
index ccf03a743678f6b6e7e3203c8a5b96e58369444a..1d9000f84f1b412e2abfd8d4e7726ba2706f72f6 100644 (file)
@@ -1,11 +1,20 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /dts-v1/;
 
-#include "motorola-mapphone-common.dtsi"
+#include "motorola-mapphone-xt8xx.dtsi"
 
 / {
        model = "Motorola Droid Bionic XT875";
        compatible = "motorola,droid-bionic", "ti,omap4430", "ti,omap4";
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       aliases {
+               display0 = &lcd0;
+               display1 = &hdmi0;
+       };
 };
 
 &keypad {
index e833c21f1c01491956bc1949d385ad673edf0011..cc3f3e1b65ea984798845660fc70d198aba3df6d 100644 (file)
@@ -1,9 +1,21 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /dts-v1/;
 
-#include "motorola-mapphone-common.dtsi"
+#include "motorola-mapphone-xt8xx.dtsi"
 
 / {
+       model = "Motorola Droid 4 XT894";
+       compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       aliases {
+               display0 = &lcd0;
+               display1 = &hdmi0;
+       };
+
        gpio_keys {
                compatible = "gpio-keys";
 
        };
 };
 
-/ {
-       model = "Motorola Droid 4 XT894";
-       compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
-};
-
 &keypad {
        keypad,num-rows = <8>;
        keypad,num-columns = <8>;
index 01d783826d5fca3243216f82f0319caf12aebd85..24f7d0285f7995cf65b874354c6b294265cb8590 100644 (file)
                regulator-name = "unknown";
        };
 
+       wl12xx_pwrseq: wl12xx-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&twl 1>;
+               clock-names = "ext_clock";
+       };
+
        /* regulator for wl12xx on sdio2 */
        wl12xx_vmmc: wl12xx-vmmc {
                pinctrl-names = "default";
@@ -74,6 +80,7 @@
        twl: pmic@48 {
                compatible = "ti,twl6032";
                reg = <0x48>;
+               #clock-cells = <1>;
                /* IRQ# = 7 */
                interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
                interrupt-controller;
        pinctrl-names = "default";
        pinctrl-0 = <&wl12xx_pins>;
        vmmc-supply = <&wl12xx_vmmc>;
+       mmc-pwrseq = <&wl12xx_pwrseq>;
        interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
                               &omap4_pmx_core 0x12e>;
        non-removable;
        interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
                               &omap4_pmx_core OMAP4_UART2_RX>;
 
-       /*
-        * BT + GPS in WL1283 in WG7500 requiring CLK32KAUDIO of pmic
-        * which does not have a driver
-        */
+       bluetooth-gnss {
+               compatible = "ti,wl1283-st";
+               enable-gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;    /* GPIO_25 */
+               clocks = <&twl 1>;
+               clock-names = "ext_clock";
+       };
 };
 
 &uart3 {
diff --git a/src/arm/ti/omap/omap4-xyboard-mz609.dts b/src/arm/ti/omap/omap4-xyboard-mz609.dts
new file mode 100644 (file)
index 0000000..762934e
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/dts-v1/;
+
+#include "motorola-mapphone-mz607-mz617.dtsi"
+
+/ {
+       model = "Motorola Xyboard MZ609";
+       compatible = "motorola,xyboard-mz609", "ti,omap4430", "ti,omap4";
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       aliases {
+               display1 = &hdmi0;
+       };
+
+       backlight: backlight {
+               compatible = "led-backlight";
+
+               leds = <&backlight_led>;
+               brightness-levels = <31 63 95 127 159 191 223 255>;
+               default-brightness-level = <6>;
+       };
+};
+
+&i2c1 {
+       led-controller@38 {
+               compatible = "ti,lm3532";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x38>;
+
+               enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
+
+               ramp-up-us = <1024>;
+               ramp-down-us = <8193>;
+
+               backlight_led: led@0 {
+                       reg = <0>;
+                       led-sources = <2>;
+                       ti,led-mode = <0>;
+                       label = ":backlight";
+               };
+       };
+};
diff --git a/src/arm/ti/omap/omap4-xyboard-mz617.dts b/src/arm/ti/omap/omap4-xyboard-mz617.dts
new file mode 100644 (file)
index 0000000..b9caea3
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/dts-v1/;
+
+#include "motorola-mapphone-mz607-mz617.dtsi"
+
+/ {
+       model = "Motorola Xyboard MZ617";
+       compatible = "motorola,xyboard-mz617", "ti,omap4430", "ti,omap4";
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       aliases {
+               display1 = &hdmi0;
+       };
+};
diff --git a/src/arm64/allwinner/sun50i-h618-orangepi-zero2w.dts b/src/arm64/allwinner/sun50i-h618-orangepi-zero2w.dts
new file mode 100644 (file)
index 0000000..21ca197
--- /dev/null
@@ -0,0 +1,176 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 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/leds/common.h>
+
+/ {
+       model = "OrangePi Zero 2W";
+       compatible = "xunlong,orangepi-zero2w", "allwinner,sun50i-h618";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
+               };
+       };
+
+       reg_vcc5v: vcc5v {
+               /* board wide 5V supply directly from the USB-C socket */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_vcc3v3: vcc3v3 {
+               /* SY8089 DC/DC converter */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_vcc5v>;
+               regulator-always-on;
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+/* USB 2 & 3 are on the FPC connector (or the exansion board) */
+
+&mmc0 {
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
+       bus-width = <4>;
+       vmmc-supply = <&reg_vcc3v3>;
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pc-supply = <&reg_dldo1>;
+       vcc-pf-supply = <&reg_dldo1>;   /* internally via VCC-IO */
+       vcc-pg-supply = <&reg_aldo1>;
+       vcc-ph-supply = <&reg_dldo1>;   /* internally via VCC-IO */
+       vcc-pi-supply = <&reg_dldo1>;
+};
+
+&r_i2c {
+       status = "okay";
+
+       axp313: pmic@36 {
+               compatible = "x-powers,axp313a";
+               reg = <0x36>;
+               #interrupt-cells = <1>;
+               interrupt-controller;
+               interrupt-parent = <&pio>;
+               interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>;  /* PC9 */
+
+               vin1-supply = <&reg_vcc5v>;
+               vin2-supply = <&reg_vcc5v>;
+               vin3-supply = <&reg_vcc5v>;
+
+               regulators {
+                       /* Supplies VCC-PLL and DRAM */
+                       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 = <1100000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-dram";
+                       };
+               };
+       };
+};
+
+&spi0  {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
+
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <40000000>;
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+&usbotg {
+       /*
+        * PHY0 pins are connected to a USB-C socket, but a role switch
+        * is not implemented: both CC pins are pulled to GND.
+        * The VBUS pins power the device, so a fixed peripheral mode
+        * is the best choice.
+        * The board can be powered via GPIOs, in this case port0 *can*
+        * act as a host (with a cable/adapter ignoring CC), as VBUS is
+        * then provided by the GPIOs. Any user of this setup would
+        * need to adjust the DT accordingly: dr_mode set to "host",
+        * enabling OHCI0 and EHCI0.
+        */
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbphy {
+       usb1_vbus-supply = <&reg_vcc5v>;
+       status = "okay";
+};
diff --git a/src/arm64/allwinner/sun50i-h618-transpeed-8k618-t.dts b/src/arm64/allwinner/sun50i-h618-transpeed-8k618-t.dts
new file mode 100644 (file)
index 0000000..8ea1fd4
--- /dev/null
@@ -0,0 +1,161 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Arm Ltd.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       model = "Transpeed 8K618-T";
+       compatible = "transpeed,8k618-t", "allwinner,sun50i-h618";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       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;
+       };
+
+       reg_vcc3v3: vcc3v3 {
+               /* discrete 3.3V regulator */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&ir {
+       status = "okay";
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_dldo1>;
+       cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>; /* PI16 */
+       bus-width = <4>;
+       status = "okay";
+};
+
+&mmc2 {
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo1>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&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 {
+                       reg_aldo1: aldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc-1v8-pll";
+                       };
+
+                       reg_dldo1: dldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-3v3-io-mmc";
+                       };
+
+                       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 = <1100000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1360000>;
+                               regulator-max-microvolt = <1360000>;
+                               regulator-name = "vdd-dram";
+                       };
+               };
+       };
+};
+
+&pio {
+       vcc-pc-supply = <&reg_aldo1>;
+       vcc-pg-supply = <&reg_dldo1>;
+       vcc-ph-supply = <&reg_dldo1>;
+       vcc-pi-supply = <&reg_dldo1>;
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbotg {
+       dr_mode = "host";       /* USB A type receptable */
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
index 439497ab967d9fdc6cced90f559c8d1a0379dbad..072fe20cfca087635697d2b62171bcc854bf88b6 100644 (file)
                };
        };
 
+       firmware {
+               svc {
+                       compatible = "intel,stratix10-svc";
+                       method = "smc";
+                       memory-region = <&service_reserved>;
+
+                       fpga_mgr: fpga-mgr {
+                               compatible = "intel,stratix10-soc-fpga-mgr";
+                       };
+               };
+       };
+
+       fpga-region {
+               compatible = "fpga-region";
+               #address-cells = <0x2>;
+               #size-cells = <0x2>;
+               fpga-mgr = <&fpga_mgr>;
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <0 170 4>,
                };
        };
 
-       soc {
+       soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
                interrupt-parent = <&intc>;
                ranges = <0 0 0 0xffffffff>;
 
-               base_fpga_region {
-                       #address-cells = <0x2>;
-                       #size-cells = <0x2>;
-                       compatible = "fpga-region";
-                       fpga-mgr = <&fpga_mgr>;
-               };
-
                clkmgr: clock-controller@ffd10000 {
                        compatible = "intel,stratix10-clkmgr";
                        reg = <0xffd10000 0x1000>;
                        resets = <&rst USB1_RESET>, <&rst USB1_OCP_RESET>;
                        reset-names = "dwc2", "dwc2-ecc";
                        clocks = <&clkmgr STRATIX10_USB_CLK>;
+                       clock-names = "otg";
                        iommus = <&smmu 7>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
-
-               firmware {
-                       svc {
-                               compatible = "intel,stratix10-svc";
-                               method = "smc";
-                               memory-region = <&service_reserved>;
-
-                               fpga_mgr: fpga-mgr {
-                                       compatible = "intel,stratix10-soc-fpga-mgr";
-                               };
-                       };
-               };
        };
 
        usbphy0: usbphy0 {
index 468fcc7da0668a5f5a75a4258bbb04215816a511..26173f0b0051b69ad701aee28fc0218c7f9038ec 100644 (file)
@@ -51,7 +51,7 @@
                regulator-max-microvolt = <330000>;
        };
 
-       soc {
+       soc@0 {
                eccmgr {
                        sdmmca-ecc@ff8c8c00 {
                                compatible = "altr,socfpga-s10-sdmmc-ecc",
 };
 
 &pinctrl0 {
-       i2c1_pmx_func: i2c1-pmx-func {
+       i2c1_pmx_func: i2c1-pmx-func-pins {
                pinctrl-single,pins = <
                        0x78   0x4   /* I2C1_SDA (IO6-B) PIN30SEL) */
                        0x7c   0x4   /* I2C1_SCL (IO7-B) PIN31SEL */
                >;
        };
 
-       i2c1_pmx_func_gpio: i2c1-pmx-func-gpio {
+       i2c1_pmx_func_gpio: i2c1-pmx-func-gpio-pins {
                pinctrl-single,pins = <
                        0x78   0x8   /* I2C1_SDA (IO6-B) PIN30SEL) */
                        0x7c   0x8   /* I2C1_SCL (IO7-B) PIN31SEL */
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <1>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index 532164a6354c6a5f00c5ccbab1391f253de4261e..81d0e914a77c430c7d7bd343a72838002f756b66 100644 (file)
@@ -51,7 +51,7 @@
                regulator-max-microvolt = <330000>;
        };
 
-       soc {
+       soc@0 {
                eccmgr {
                        sdmmca-ecc@ff8c8c00 {
                                compatible = "altr,socfpga-s10-sdmmc-ecc",
 &nand {
        status = "okay";
 
-       flash@0 {
+       nand@0 {
                reg = <0>;
                #address-cells = <1>;
                #size-cells = <1>;
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <1>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index ff413f8e3b079ddb087deff862e45270e3ee1a7d..0d837d3e65a5634ce5a6071b4358dd91683633e7 100644 (file)
@@ -80,8 +80,6 @@
 
 &mmc {
        status = "okay";
-       altr,dw-mshc-ciu-div = <0x3>;
-       altr,dw-mshc-sdr-timing = <0x0 0x3>;
        cap-sd-highspeed;
        cap-mmc-highspeed;
        broken-cd;
index dccbba6e7f98e49f572b57c86415dced108fee2d..dbf2dce8d1d68a5225311bf330704e9f6d1ead40 100644 (file)
                msix: msix@fbe00000 {
                        compatible = "al,alpine-msix";
                        reg = <0x0 0xfbe00000 0x0 0x100000>;
-                       interrupt-controller;
                        msi-controller;
                        al,msi-base-spi = <160>;
                        al,msi-num-spis = <160>;
index 39481d7fd7d4da806fe1ab1e4b2320cc732f37d5..3ea178acdddfe2072352283f47318f0f75808c4f 100644 (file)
                msix: msix@fbe00000 {
                        compatible = "al,alpine-msix";
                        reg = <0x0 0xfbe00000 0x0 0x100000>;
-                       interrupt-controller;
                        msi-controller;
                        al,msi-base-spi = <336>;
                        al,msi-num-spis = <959>;
index 998f5050795c6dfb656c9aca34bb7b208bbe22ae..2ad1f8eef1996ffc4806cf722433391675186c80 100644 (file)
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       watchdog@2100 {
+                               compatible = "amlogic,c3-wdt", "amlogic,t7-wdt";
+                               reg = <0x0 0x2100 0x0 0x10>;
+                               clocks = <&xtal>;
+                       };
+
                        periphs_pinctrl: pinctrl@4000 {
                                compatible = "amlogic,c3-periphs-pinctrl";
                                #address-cells = <2>;
index 0062667c4f65f90d5b9b6edc9ae50e166a5774d9..8a18ce948450137b9b125577431b7583cfd219da 100644 (file)
 &uart_B {
        bluetooth {
                compatible = "realtek,rtl8822cs-bt";
-               enable-gpios  = <&gpio GPIOZ_7 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio GPIOZ_7 GPIO_ACTIVE_HIGH>;
                host-wake-gpios = <&gpio GPIOZ_8 GPIO_ACTIVE_HIGH>;
                device-wake-gpios = <&gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
        };
 };
+
+&i2c_AO {
+       /* EEPROM on base board */
+       eeprompd: eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+               pagesize = <0x20>;
+               label = "eeprompd";
+               address-width = <0x10>;
+               vcc-supply = <&vddao_3v3>;
+       };
+};
index c2d22b00c1cd7757f1d918ec3f1735233107ce17..c356bd2cc63aafc1733afc5b8e7bd888a3c79374 100644 (file)
 &sd_emmc_b {
        broken-cd;/* cd-gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;*/
 };
+
+&i2c_AO {
+       /* EEPROM on base board */
+       eeprompd: eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+               pagesize = <0x20>;
+               label = "eeprompd";
+               address-width = <0x10>;
+               vcc-supply = <&vddao_3v3>;
+       };
+};
index df16eead2c80307daeaa0459a524af78dc1823fb..c8905663bc754176c43295b3810dae81c0c9a36c 100644 (file)
@@ -66,7 +66,6 @@
                VDDA-supply = <&vcc_3v3>;
                VDDP-supply = <&vcc_3v3>;
                VDDD-supply = <&vcc_3v3>;
-               status = "okay";
                sound-name-prefix = "Linein";
        };
 
                compatible = "everest,es7154";
                VDD-supply = <&vcc_3v3>;
                PVDD-supply = <&vcc_5v>;
-               status = "okay";
                sound-name-prefix = "Lineout";
        };
 
        spdif_dit: audio-codec-2 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
                compatible = "dmic-codec";
                num-channels = <7>;
                wakeup-delay-ms = <50>;
-               status = "okay";
                sound-name-prefix = "MIC";
        };
 
        spdif_dir: audio-codec-4 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dir";
-               status = "okay";
                sound-name-prefix = "DIR";
        };
 
index a49aa62e3f9fb7d7fdaea699823a0e3bcc65b862..7e5ac9db93f8a7dae069fc91515b3f26d0f74b9d 100644 (file)
                                        };
                                };
 
+                               nand_all_pins: nand-all-pins {
+                                       mux {
+                                               groups = "emmc_nand_d0",
+                                                        "emmc_nand_d1",
+                                                        "emmc_nand_d2",
+                                                        "emmc_nand_d3",
+                                                        "emmc_nand_d4",
+                                                        "emmc_nand_d5",
+                                                        "emmc_nand_d6",
+                                                        "emmc_nand_d7",
+                                                        "nand_ce0",
+                                                        "nand_ale",
+                                                        "nand_cle",
+                                                        "nand_wen_clk",
+                                                        "nand_ren_wr";
+                                               function = "nand";
+                                               input-enable;
+                                               bias-pull-up;
+                                       };
+                               };
+
                                emmc_ds_pins: emmc_ds {
                                        mux {
                                                groups = "emmc_ds";
                                reg = <0x0 0x7800 0x0 0x100>,
                                      <0x0 0x7000 0x0 0x800>;
                                reg-names = "nfc", "emmc";
+                               pinctrl-0 = <&nand_all_pins>;
+                               pinctrl-names = "default";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>;
index 0ad0c2b7dfefcb2acb6865d3378767889d603eb4..4c4550dd47112796ffe04ef6c41f928c4d797f49 100644 (file)
@@ -45,7 +45,6 @@
                compatible = "dmic-codec";
                num-channels = <2>;
                wakeup-delay-ms = <50>;
-               status = "okay";
                sound-name-prefix = "MIC";
        };
 
index 4969a76460fa639b23324275d7952a67567d49e3..9b55982b6a6bbd106978b560c38c87259297a28d 100644 (file)
@@ -22,7 +22,6 @@
        spdif_dit: audio-codec-1 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index 995ce10d5c81712f6cf29fe576901db37c5f3e76..08c33ec7e9f1debac17d244b1d4eb2fbc5cf56e6 100644 (file)
 
        bluetooth {
                compatible = "realtek,rtl8822cs-bt";
-               enable-gpios  = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
                host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
                device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
        };
index 0a6a12808568fc0ee54b8e93fc65ce65882c067d..4b8db872bbf315ce36f13dab646c2e46bdb89429 100644 (file)
 
        bluetooth {
                compatible = "realtek,rtl8822cs-bt";
-               enable-gpios  = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
                host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
                device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
        };
index 8fc2e143cb5407b7009141de3ac53a88154cf95d..0da386cabe1a5ad1a9086ec5b69489917389ccf6 100644 (file)
@@ -22,7 +22,6 @@
        spdif_dit: audio-codec-1 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index ce548b37329601ed207e3020a26904ad9dbedb2c..6396f190d703ed450dff4d33d40c73e7217b856d 100644 (file)
@@ -17,7 +17,6 @@
        spdif_dit: audio-codec-1 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index 18f7b730289e4a85df3610646a16325e4fa217d7..e59c3c92b1e7c6a660c2221954cf1277b47a69cf 100644 (file)
@@ -26,7 +26,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index e238f1f1012419493699739c38708efa3d2f5526..f28452b9f00fdb5de66948bebbd438a46d1557b8 100644 (file)
@@ -18,7 +18,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index 292c718ee19c5803b01f940db6b5b951362a516a..591455c50e8866b4579cf417bc05c3d940d25626 100644 (file)
@@ -18,7 +18,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index e8303089bff69d4496705552ba6d5496ae2ab79b..74df32534231897f61aab3cc5ab88d96e3235573 100644 (file)
@@ -21,7 +21,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index e1b74b17491523febf0b5122760b534c42eee342..376760d86766158d7d6c50fb87b8e6e29835de1c 100644 (file)
@@ -17,7 +17,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index 7d525bdb0e062eda978d5a7d860f0fe408a62749..ad2dd4ad0a313fd64a2a38c38448ee5972054f34 100644 (file)
@@ -28,7 +28,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index 50d49aec41bdb50e7829e69c6134a84bf2ec060d..d05dde8da5c566ed262921e983dc41eba1d17a7b 100644 (file)
@@ -37,7 +37,6 @@
        spdif_dit: audio-codec-0 {
                #sound-dai-cells = <0>;
                compatible = "linux,spdif-dit";
-               status = "okay";
                sound-name-prefix = "DIT";
        };
 
index c1f322c7398261b5d7aa47310d31c0786139f16e..983caddc409c35b4b396650935a1cfb84ab10d21 100644 (file)
@@ -15,7 +15,7 @@
        #size-cells = <2>;
 
        aliases {
-               serial0 = &uart_B;
+               serial0 = &uart_b;
        };
 
        memory@0 {
                reg = <0x0 0x0 0x0 0x40000000>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 52 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@5000000 {
+                       reg = <0x0 0x05000000 0x0 0x3400000>;
+                       no-map;
+               };
+       };
 };
 
-&uart_B {
+&uart_b {
        status = "okay";
 };
 
        pinctrl-0 = <&remote_pins>;
        pinctrl-names = "default";
 };
+
+&nand {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       pinctrl-0 = <&nand_pins>;
+       pinctrl-names = "default";
+
+       nand@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-on-flash-bbt;
+
+               partition@0 {
+                       label = "boot";
+                       reg = <0x0 0x00200000>;
+               };
+               partition@200000 {
+                       label = "env";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "system";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "rootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "media";
+                       reg = <0x04000000 0x8000000>;
+               };
+       };
+};
+
+&spicc0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spicc0_pins_x>;
+       cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
+};
index e0cfc54ebccb1f56bcca64615b7598505684e6c1..ce90b35686a212181efdda3e14cc612ee17c9536 100644 (file)
@@ -6,6 +6,10 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-s4-gpio.h>
+#include <dt-bindings/clock/amlogic,s4-pll-clkc.h>
+#include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h>
+#include <dt-bindings/power/meson-s4-power.h>
 
 / {
        cpus {
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       clkc_periphs: clock-controller@0 {
+                               compatible = "amlogic,s4-peripherals-clkc";
+                               reg = <0x0 0x0 0x0 0x49c>;
+                               clocks = <&clkc_pll CLKID_FCLK_DIV2>,
+                                       <&clkc_pll CLKID_FCLK_DIV2P5>,
+                                       <&clkc_pll CLKID_FCLK_DIV3>,
+                                       <&clkc_pll CLKID_FCLK_DIV4>,
+                                       <&clkc_pll CLKID_FCLK_DIV5>,
+                                       <&clkc_pll CLKID_FCLK_DIV7>,
+                                       <&clkc_pll CLKID_HIFI_PLL>,
+                                       <&clkc_pll CLKID_GP0_PLL>,
+                                       <&clkc_pll CLKID_MPLL0>,
+                                       <&clkc_pll CLKID_MPLL1>,
+                                       <&clkc_pll CLKID_MPLL2>,
+                                       <&clkc_pll CLKID_MPLL3>,
+                                       <&clkc_pll CLKID_HDMI_PLL>,
+                                       <&xtal>;
+                               clock-names = "fclk_div2", "fclk_div2p5", "fclk_div3",
+                                               "fclk_div4", "fclk_div5", "fclk_div7",
+                                               "hifi_pll", "gp0_pll", "mpll0", "mpll1",
+                                               "mpll2", "mpll3", "hdmi_pll", "xtal";
+                               #clock-cells = <1>;
+                       };
+
+                       clkc_pll: clock-controller@8000 {
+                               compatible = "amlogic,s4-pll-clkc";
+                               reg = <0x0 0x8000 0x0 0x1e8>;
+                               clocks = <&xtal>;
+                               clock-names = "xtal";
+                               #clock-cells = <1>;
+                       };
+
+                       watchdog@2100 {
+                               compatible = "amlogic,s4-wdt", "amlogic,t7-wdt";
+                               reg = <0x0 0x2100 0x0 0x10>;
+                               clocks = <&xtal>;
+                       };
+
                        periphs_pinctrl: pinctrl@4000 {
                                compatible = "amlogic,meson-s4-periphs-pinctrl";
                                #address-cells = <2>;
                                                bias-disable;
                                        };
                                };
+
+                               i2c0_pins1: i2c0-pins1 {
+                                       mux {
+                                               groups = "i2c0_sda",
+                                                      "i2c0_scl";
+                                               function = "i2c0";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c1_pins1: i2c1-pins1 {
+                                       mux {
+                                               groups = "i2c1_sda_c",
+                                                      "i2c1_scl_c";
+                                               function = "i2c1";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c1_pins2: i2c1-pins2 {
+                                       mux {
+                                               groups = "i2c1_sda_d",
+                                                      "i2c1_scl_d";
+                                               function = "i2c1";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c1_pins3: i2c1-pins3 {
+                                       mux {
+                                               groups = "i2c1_sda_h",
+                                                      "i2c1_scl_h";
+                                               function = "i2c1";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c1_pins4: i2c1-pins4 {
+                                       mux {
+                                               groups = "i2c1_sda_x",
+                                                      "i2c1_scl_x";
+                                               function = "i2c1";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c2_pins1: i2c2-pins1 {
+                                       mux {
+                                               groups = "i2c2_sda_d",
+                                                      "i2c2_scl_d";
+                                               function = "i2c2";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c2_pins2: i2c2-pins2 {
+                                       mux {
+                                               groups = "i2c2_sda_h8",
+                                                      "i2c2_scl_h9";
+                                               function = "i2c2";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c2_pins3: i2c2-pins3 {
+                                       mux {
+                                               groups = "i2c2_sda_h0",
+                                                      "i2c2_scl_h1";
+                                               function = "i2c2";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c3_pins1: i2c3-pins1 {
+                                       mux {
+                                               groups = "i2c3_sda_x",
+                                                      "i2c3_scl_x";
+                                               function = "i2c3";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c3_pins2: i2c3-pins2 {
+                                       mux {
+                                               groups = "i2c3_sda_z",
+                                                      "i2c3_scl_z";
+                                               function = "i2c3";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c4_pins1: i2c4-pins1 {
+                                       mux {
+                                               groups = "i2c4_sda_c",
+                                                      "i2c4_scl_c";
+                                               function = "i2c4";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c4_pins2: i2c4-pins2 {
+                                       mux {
+                                               groups = "i2c4_sda_d",
+                                                      "i2c4_scl_d";
+                                               function = "i2c4";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               i2c4_pins3: i2c4-pins3 {
+                                       mux {
+                                               groups = "i2c4_sda_z",
+                                                      "i2c4_scl_z";
+                                               function = "i2c4";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               nand_pins: nand-pins {
+                                       mux {
+                                               groups = "emmc_nand_d0",
+                                                      "emmc_nand_d1",
+                                                      "emmc_nand_d2",
+                                                      "emmc_nand_d3",
+                                                      "emmc_nand_d4",
+                                                      "emmc_nand_d5",
+                                                      "emmc_nand_d6",
+                                                      "emmc_nand_d7",
+                                                      "nand_ce0",
+                                                      "nand_ale",
+                                                      "nand_cle",
+                                                      "nand_wen_clk",
+                                                      "nand_ren_wr";
+                                               function = "nand";
+                                               input-enable;
+                                       };
+                               };
+
+                               spicc0_pins_x: spicc0-pins_x {
+                                       mux {
+                                               groups = "spi_a_mosi_x",
+                                                      "spi_a_miso_x",
+                                                      "spi_a_clk_x";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc0_pins_h: spicc0-pins-h {
+                                       mux {
+                                               groups = "spi_a_mosi_h",
+                                                      "spi_a_miso_h",
+                                                      "spi_a_clk_h";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc0_pins_z: spicc0-pins-z {
+                                       mux {
+                                               groups = "spi_a_mosi_z",
+                                                      "spi_a_miso_z",
+                                                      "spi_a_clk_z";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
                        };
 
                        gpio_intc: interrupt-controller@4080 {
                                        <10 11 12 13 14 15 16 17 18 19 20 21>;
                        };
 
-                       uart_B: serial@7a000 {
+                       eth_phy: mdio-multiplexer@28000 {
+                               compatible = "amlogic,g12a-mdio-mux";
+                               reg = <0x0 0x28000 0x0 0xa4>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&clkc_periphs CLKID_ETHPHY>,
+                                        <&xtal>,
+                                        <&clkc_pll CLKID_MPLL_50M>;
+                               clock-names = "pclk", "clkin0", "clkin1";
+                               mdio-parent-bus = <&mdio0>;
+
+                               ext_mdio: mdio@0 {
+                                       reg = <0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               int_mdio: mdio@1 {
+                                       reg = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       internal_ephy: ethernet-phy@8 {
+                                               compatible = "ethernet-phy-id0180.3301",
+                                                            "ethernet-phy-ieee802.3-c22";
+                                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                                               reg = <8>;
+                                               max-speed = <100>;
+                                       };
+                               };
+                       };
+
+                       spicc0: spi@50000 {
+                               compatible = "amlogic,meson-g12a-spicc";
+                               reg = <0x0 0x50000 0x0 0x44>;
+                               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clkc_periphs CLKID_SPICC0>,
+                                        <&clkc_periphs CLKID_SPICC0_EN>;
+                               clock-names = "core", "pclk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c0: i2c@66000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x66000 0x0 0x20>;
+                               interrupts = <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_I2C_M_A>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@68000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x68000 0x0 0x20>;
+                               interrupts = <GIC_SPI 161 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_I2C_M_B>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@6a000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x6a000 0x0 0x20>;
+                               interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_I2C_M_C>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@6c000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x6c000 0x0 0x20>;
+                               interrupts = <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_I2C_M_D>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@6e000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x6e000 0x0 0x20>;
+                               interrupts = <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_I2C_M_E>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       nand: nand-controller@8c800 {
+                               compatible = "amlogic,meson-axg-nfc";
+                               reg = <0x0 0x8c800 0x0 0x100>, <0x0 0x8c000 0x0 0x4>;
+                               reg-names = "nfc", "emmc";
+                               interrupts = <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_SD_EMMC_C>,
+                                       <&clkc_pll CLKID_FCLK_DIV2>;
+                               clock-names = "core", "device";
+                               status = "disabled";
+                       };
+
+                       uart_b: serial@7a000 {
                                compatible = "amlogic,meson-s4-uart",
                                             "amlogic,meson-ao-uart";
                                reg = <0x0 0x7a000 0x0 0x18>;
                                interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
-                               status = "disabled";
-                               clocks = <&xtal>, <&xtal>, <&xtal>;
+                               clocks = <&xtal>, <&clkc_periphs CLKID_UART_B>, <&xtal>;
                                clock-names = "xtal", "pclk", "baud";
+                               status = "disabled";
                        };
 
                        reset: reset-controller@2000 {
                                reg = <0x0 0x440788 0x0 0x0c>;
                        };
                };
+
+               ethmac: ethernet@fdc00000 {
+                       compatible = "amlogic,meson-axg-dwmac",
+                                    "snps,dwmac-3.70a",
+                                    "snps,dwmac";
+                       reg = <0x0 0xfdc00000 0x0 0x10000>,
+                             <0x0 0xfe024000 0x0 0x8>;
+
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       power-domains = <&pwrc PWRC_S4_ETH_ID>;
+                       clocks = <&clkc_periphs CLKID_ETH>,
+                                <&clkc_pll CLKID_FCLK_DIV2>,
+                                <&clkc_pll CLKID_MPLL2>;
+                       clock-names = "stmmaceth", "clkin0", "clkin1";
+                       rx-fifo-depth = <4096>;
+                       tx-fifo-depth = <2048>;
+                       status = "disabled";
+
+                       mdio0: mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "snps,dwmac-mdio";
+                       };
+               };
        };
 };
index 095579c55f18e37e4e3a5726603e46566e88e43a..109932068dbe6c0c7d12528ab632f1d3052e9d1b 100644 (file)
@@ -32,7 +32,6 @@
                compatible = "dmic-codec";
                num-channels = <2>;
                wakeup-delay-ms = <50>;
-               status = "okay";
                sound-name-prefix = "MIC";
        };
 
index 8b4d280b1e7e78831604ac1520164328cf3a727c..b897f5542c0a1c9b2adb72797327adf83bea90b9 100644 (file)
        };
 
        thermal-zones {
-               pmic {
+               pmic-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 0>;
                        };
                };
 
-               soc {
+               soc-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 3>;
                        };
                };
 
-               big_cluster_thermal_zone: big-cluster {
+               big_cluster_thermal_zone: big-cluster-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 21>;
                        status = "disabled";
                };
 
-               little_cluster_thermal_zone: little-cluster {
+               little_cluster_thermal_zone: little-cluster-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 22>;
                        status = "disabled";
                };
 
-               gpu0_thermal_zone: gpu0 {
+               gpu0_thermal_zone: gpu0-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 23>;
                        status = "disabled";
                };
 
-               gpu1_thermal_zone: gpu1 {
+               gpu1_thermal_zone: gpu1-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 24>;
index ec85cd2c733cec77b875344e5b82aa2f0eb64dde..31929e2377d8a41392ae159a2d0402d2d94bcd4a 100644 (file)
        };
 
        thermal-zones {
-               pmic {
+               pmic-thermal {
                        thermal-sensors = <&scmi_sensors0 0>;
                };
 
-               soc {
+               soc-thermal {
                        thermal-sensors = <&scmi_sensors0 3>;
                };
 
-               big-cluster {
+               big-cluster-thermal {
                        thermal-sensors = <&scmi_sensors0 21>;
                };
 
-               little-cluster {
+               little-cluster-thermal {
                        thermal-sensors = <&scmi_sensors0 22>;
                };
 
-               gpu0 {
+               gpu0-thermal {
                        thermal-sensors = <&scmi_sensors0 23>;
                };
 
-               gpu1 {
+               gpu1-thermal {
                        thermal-sensors = <&scmi_sensors0 24>;
                };
        };
index 9dcd25ec2c04183fb90f160452142c2f5a790136..896d1f33b5b6173e3b4b701d4e08f4ad277856e0 100644 (file)
                        #gpio-cells = <2>;
                        gpio-controller;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index f049687d6b96d23fb0383401ef9c19e50af34148..d8516ec0dae7450e2c5e81f0bddf8ffdeba2bb5e 100644 (file)
                        #gpio-cells = <2>;
                        gpio-controller;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-ranges = <&pinmux 0 0 16>,
                                        <&pinmux 16 71 2>,
index 91ae0462a706a6c104b83a021c123445b4388ef8..7fbbec04bff037a6f36757397f6bea4504cc385f 100644 (file)
                ranges = <0x0 0x0 0x0 0x18000000>;
 
                chipid@10000000 {
-                       compatible = "samsung,exynos4210-chipid";
+                       compatible = "samsung,exynos5433-chipid",
+                                    "samsung,exynos4210-chipid";
                        reg = <0x10000000 0x100>;
                };
 
                        reg = <0x10580000 0x1a20>, <0x11090000 0x100>;
 
                        wakeup-interrupt-controller {
-                               compatible = "samsung,exynos7-wakeup-eint";
+                               compatible = "samsung,exynos5433-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
                                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
                };
 
                adc: adc@14d10000 {
-                       compatible = "samsung,exynos7-adc";
+                       compatible = "samsung,exynos5433-adc", "samsung,exynos7-adc";
                        reg = <0x14d10000 0x100>;
                        interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "adc";
                };
 
                i2s1: i2s@14d60000 {
-                       compatible = "samsung,exynos7-i2s";
+                       compatible = "samsung,exynos5433-i2s", "samsung,exynos7-i2s";
                        reg = <0x14d60000 0x100>;
                        dmas = <&pdma0 31>, <&pdma0 30>;
                        dma-names = "tx", "rx";
                };
 
                pwm: pwm@14dd0000 {
-                       compatible = "samsung,exynos4210-pwm";
+                       compatible = "samsung,exynos5433-pwm", "samsung,exynos4210-pwm";
                        reg = <0x14dd0000 0x100>;
                        interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                hsi2c_0: i2c@14e40000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14e40000 0x1000>;
                        interrupts = <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_1: i2c@14e50000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14e50000 0x1000>;
                        interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_2: i2c@14e60000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14e60000 0x1000>;
                        interrupts = <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_3: i2c@14e70000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14e70000 0x1000>;
                        interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_4: i2c@14ec0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14ec0000 0x1000>;
                        interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_5: i2c@14ed0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14ed0000 0x1000>;
                        interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_6: i2c@14ee0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14ee0000 0x1000>;
                        interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_7: i2c@14ef0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14ef0000 0x1000>;
                        interrupts = <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_8: i2c@14d90000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14d90000 0x1000>;
                        interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_9: i2c@14da0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14da0000 0x1000>;
                        interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_10: i2c@14de0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14de0000 0x1000>;
                        interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_11: i2c@14df0000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "samsung,exynos5433-hsi2c",
+                                    "samsung,exynos7-hsi2c";
                        reg = <0x14df0000 0x1000>;
                        interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                mshc_0: mmc@15540000 {
-                       compatible = "samsung,exynos7-dw-mshc-smu";
+                       compatible = "samsung,exynos5433-dw-mshc-smu",
+                                    "samsung,exynos7-dw-mshc-smu";
                        interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
                mshc_1: mmc@15550000 {
-                       compatible = "samsung,exynos7-dw-mshc-smu";
+                       compatible = "samsung,exynos5433-dw-mshc-smu",
+                                    "samsung,exynos7-dw-mshc-smu";
                        interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
                mshc_2: mmc@15560000 {
-                       compatible = "samsung,exynos7-dw-mshc-smu";
+                       compatible = "samsung,exynos5433-dw-mshc-smu",
+                                    "samsung,exynos7-dw-mshc-smu";
                        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        };
 
                        i2s0: i2s@11440000 {
-                               compatible = "samsung,exynos7-i2s";
+                               compatible = "samsung,exynos5433-i2s",
+                                            "samsung,exynos7-i2s";
                                reg = <0x11440000 0x100>;
                                dmas = <&adma 0>, <&adma 2>;
                                dma-names = "tx", "rx";
index 6ed80ddf336956980feea9788a710f23a3cee886..9cb6bd61262e15f19d43deca49d07d760802a65d 100644 (file)
                ranges = <0 0 0 0x18000000>;
 
                chipid@10000000 {
-                       compatible = "samsung,exynos4210-chipid";
+                       compatible = "samsung,exynos7-chipid",
+                                    "samsung,exynos4210-chipid";
                        reg = <0x10000000 0x100>;
                };
 
                };
 
                serial_0: serial@13630000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "samsung,exynos7-uart", "samsung,exynos4210-uart";
                        reg = <0x13630000 0x100>;
                        interrupts = <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock_peric0 PCLK_UART0>,
                };
 
                serial_1: serial@14c20000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "samsung,exynos7-uart", "samsung,exynos4210-uart";
                        reg = <0x14c20000 0x100>;
                        interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock_peric1 PCLK_UART1>,
                };
 
                serial_2: serial@14c30000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "samsung,exynos7-uart", "samsung,exynos4210-uart";
                        reg = <0x14c30000 0x100>;
                        interrupts = <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock_peric1 PCLK_UART2>,
                };
 
                serial_3: serial@14c40000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "samsung,exynos7-uart", "samsung,exynos4210-uart";
                        reg = <0x14c40000 0x100>;
                        interrupts = <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock_peric1 PCLK_UART3>,
                };
 
                rtc: rtc@10590000 {
-                       compatible = "samsung,s3c6410-rtc";
+                       compatible = "samsung,exynos7-rtc", "samsung,s3c6410-rtc";
                        reg = <0x10590000 0x100>;
                        interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                gpu: gpu@14ac0000 {
-                       compatible = "samsung,exynos5433-mali", "arm,mali-t760";
+                       compatible = "samsung,exynos7-mali",
+                                    "samsung,exynos5433-mali", "arm,mali-t760";
                        reg = <0x14ac0000 0x5000>;
                        interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                pwm: pwm@136c0000 {
-                       compatible = "samsung,exynos4210-pwm";
+                       compatible = "samsung,exynos7-pwm", "samsung,exynos4210-pwm";
                        reg = <0x136c0000 0x100>;
                        interrupts = <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
index d69fc2392bd0e37842109865f226925d7ac4d602..008228fb319a90e5b9561ac1a04fab3d7a95c536 100644 (file)
                ranges = <0x0 0x0 0x0 0x20000000>;
 
                chipid@10000000 {
-                       compatible = "samsung,exynos850-chipid";
+                       compatible = "samsung,exynos7885-chipid",
+                                    "samsung,exynos850-chipid";
                        reg = <0x10000000 0x24>;
                };
 
                        reg = <0x11cb0000 0x1000>;
 
                        wakeup-interrupt-controller {
-                               compatible = "samsung,exynos7-wakeup-eint";
+                               compatible = "samsung,exynos7885-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
                                interrupt-parent = <&gic>;
                                interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
                pmu_system_controller: system-controller@11c80000 {
-                       compatible = "samsung,exynos7-pmu", "syscon";
+                       compatible = "samsung,exynos7885-pmu",
+                                    "samsung,exynos7-pmu", "syscon";
                        reg = <0x11c80000 0x10000>;
                };
 
                mmc_0: mmc@13500000 {
-                       compatible = "samsung,exynos7-dw-mshc-smu";
+                       compatible = "samsung,exynos7885-dw-mshc-smu",
+                                    "samsung,exynos7-dw-mshc-smu";
                        reg = <0x13500000 0x2000>;
                        interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                serial_0: serial@13800000 {
-                       compatible = "samsung,exynos5433-uart";
+                       compatible = "samsung,exynos7885-uart",
+                                    "samsung,exynos5433-uart";
                        reg = <0x13800000 0x100>;
                        interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                };
 
                serial_1: serial@13810000 {
-                       compatible = "samsung,exynos5433-uart";
+                       compatible = "samsung,exynos7885-uart",
+                                    "samsung,exynos5433-uart";
                        reg = <0x13810000 0x100>;
                        interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                };
 
                serial_2: serial@13820000 {
-                       compatible = "samsung,exynos5433-uart";
+                       compatible = "samsung,exynos7885-uart",
+                                    "samsung,exynos5433-uart";
                        reg = <0x13820000 0x100>;
                        interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                };
 
                i2c_0: i2c@13830000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13830000 0x100>;
                        interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_1: i2c@13840000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13840000 0x100>;
                        interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_2: i2c@13850000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13850000 0x100>;
                        interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_3: i2c@13860000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13860000 0x100>;
                        interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_4: i2c@13870000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13870000 0x100>;
                        interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_5: i2c@13880000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13880000 0x100>;
                        interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_6: i2c@13890000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x13890000 0x100>;
                        interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_7: i2c@11cd0000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos7885-i2c",
+                                    "samsung,s3c2440-i2c";
                        reg = <0x11cd0000 0x100>;
                        interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
index 53104e65b9c67024e23468713d3a8da8341d7bc5..da3f4a791e686c70dc1050471ca9a9a29ffc62c7 100644 (file)
                        reg = <0x11850000 0x1000>;
 
                        wakeup-interrupt-controller {
-                               compatible = "samsung,exynos850-wakeup-eint";
+                               compatible = "samsung,exynos850-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
                        };
                };
 
                        reg = <0x11c30000 0x1000>;
 
                        wakeup-interrupt-controller {
-                               compatible = "samsung,exynos850-wakeup-eint";
+                               compatible = "samsung,exynos850-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
                        };
                };
 
                };
 
                rtc: rtc@11a30000 {
-                       compatible = "samsung,s3c6410-rtc";
+                       compatible = "samsung,exynos850-rtc", "samsung,s3c6410-rtc";
                        reg = <0x11a30000 0x100>;
                        interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                mmc_0: mmc@12100000 {
-                       compatible = "samsung,exynos7-dw-mshc-smu";
+                       compatible = "samsung,exynos850-dw-mshc-smu",
+                                    "samsung,exynos7-dw-mshc-smu";
                        reg = <0x12100000 0x2000>;
                        interrupts = <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_0: i2c@13830000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13830000 0x100>;
                        interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_1: i2c@13840000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13840000 0x100>;
                        interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_2: i2c@13850000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13850000 0x100>;
                        interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_3: i2c@13860000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13860000 0x100>;
                        interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                i2c_4: i2c@13870000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13870000 0x100>;
                        interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
 
                /* I2C_5 (also called CAM_PMIC_I2C in TRM) */
                i2c_5: i2c@13880000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13880000 0x100>;
                        interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
 
                /* I2C_6 (also called MOTOR_I2C in TRM) */
                i2c_6: i2c@13890000 {
-                       compatible = "samsung,s3c2440-i2c";
+                       compatible = "samsung,exynos850-i2c", "samsung,s3c2440-i2c";
                        reg = <0x13890000 0x100>;
                        interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        status = "disabled";
 
                        hsi2c_0: i2c@138a0000 {
-                               compatible = "samsung,exynosautov9-hsi2c";
+                               compatible = "samsung,exynos850-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
                                reg = <0x138a0000 0xc0>;
                                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                        status = "disabled";
 
                        hsi2c_1: i2c@138b0000 {
-                               compatible = "samsung,exynosautov9-hsi2c";
+                               compatible = "samsung,exynos850-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
                                reg = <0x138b0000 0xc0>;
                                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                        status = "disabled";
 
                        hsi2c_2: i2c@138c0000 {
-                               compatible = "samsung,exynosautov9-hsi2c";
+                               compatible = "samsung,exynos850-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
                                reg = <0x138c0000 0xc0>;
                                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                        status = "disabled";
 
                        hsi2c_3: i2c@11d00000 {
-                               compatible = "samsung,exynosautov9-hsi2c";
+                               compatible = "samsung,exynos850-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
                                reg = <0x11d00000 0xc0>;
                                interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                        status = "disabled";
 
                        hsi2c_4: i2c@11d20000 {
-                               compatible = "samsung,exynosautov9-hsi2c";
+                               compatible = "samsung,exynos850-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
                                reg = <0x11d20000 0xc0>;
                                interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
index bc1815f6ada26fdea83623a099d47dceea0bb245..de2c1de51a76ec04921f02c70768524dd8190e25 100644 (file)
@@ -9,6 +9,7 @@
 /dts-v1/;
 #include "exynosautov9.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 
 / {
        model = "Samsung ExynosAuto v9 SADK board";
                      <0xa 0x00000000 0x2 0x00000000>;
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key_wakeup &key_volup &key_voldown>;
+
+               key-wakeup {
+                       label = "Wakeup";
+                       linux,code = <KEY_WAKEUP>;
+                       gpios = <&gpa0 0 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&gpg2 0 GPIO_ACTIVE_LOW>;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&gpg1 5 GPIO_ACTIVE_LOW>;
+               };
+       };
+
        ufs_0_fixed_vcc_reg: regulator-0 {
                compatible = "regulator-fixed";
                regulator-name = "ufs-vcc";
        };
 };
 
+&pinctrl_alive {
+       key_wakeup: key-wakeup-pins {
+               samsung,pins = "gpa0-0";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+};
+
+&pinctrl_peric1 {
+       key_voldown: key-voldown-pins {
+               samsung,pins = "gpg2-0";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+
+       key_volup: key-volup-pins {
+               samsung,pins = "gpg1-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+};
+
 &pwm {
        pinctrl-names = "default";
        pinctrl-0 = <&pwm_tout3>;
index b228cd7e351e9972e89f1915206b350d7b91eadf..c871a2f49fda86ffb309f94f5b65701d3d58eb48 100644 (file)
                ranges = <0x0 0x0 0x0 0x20000000>;
 
                chipid@10000000 {
-                       compatible = "samsung,exynos850-chipid";
+                       compatible = "samsung,exynosautov9-chipid",
+                                    "samsung,exynos850-chipid";
                        reg = <0x10000000 0x24>;
                };
 
                        reg = <0x10450000 0x1000>;
 
                        wakeup-interrupt-controller {
-                               compatible = "samsung,exynosautov9-wakeup-eint";
+                               compatible = "samsung,exynosautov9-wakeup-eint",
+                                            "samsung,exynos850-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
                        };
                };
 
                };
 
                pmu_system_controller: system-controller@10460000 {
-                       compatible = "samsung,exynos7-pmu", "syscon";
+                       compatible = "samsung,exynosautov9-pmu",
+                                    "samsung,exynos7-pmu", "syscon";
                        reg = <0x10460000 0x10000>;
 
                        reboot: syscon-reboot {
diff --git a/src/arm64/exynos/exynosautov920-pinctrl.dtsi b/src/arm64/exynos/exynosautov920-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..663e826
--- /dev/null
@@ -0,0 +1,1266 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung's ExynosAutov920 SoC pin-mux and pin-config device tree source
+ *
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ *
+ * Samsung's ExynosAutov920 SoC pin-mux and pin-config options are listed as
+ * device tree nodes in this file.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "exynos-pinctrl.h"
+
+&pinctrl_alive {
+       gpa0: gpa0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       gpa1: gpa1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       gpq0: gpq0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_aud {
+       gpb0: gpb0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb1: gpb1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb2: gpb2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb3: gpb3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb4: gpb4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb5: gpb5-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb6: gpb6-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_hsi0 {
+       gph0: gph0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph1: gph1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_hsi1 {
+       gph8: gph8-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_hsi2 {
+       gph3: gph3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph4: gph4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph5: gph5-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph6: gph6-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_hsi2ufs {
+       gph2: gph2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       ufs_refclk_out: ufs-refclk-out-pins {
+               samsung,pins = "gph2-0";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       ufs_rst_n: ufs-rst-n-pins {
+               samsung,pins = "gph2-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <EXYNOS_PIN_PULL_DOWN>;
+       };
+
+       ufs_refclk_out_1: ufs-refclk-out-1-pins {
+               samsung,pins = "gph2-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <EXYNOS_PIN_PULL_DOWN>;
+       };
+
+       ufs_rst_n_1: ufs-rst-n-1-pins {
+               samsung,pins = "gph2-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <EXYNOS_PIN_PULL_DOWN>;
+       };
+};
+
+&pinctrl_peric0 {
+       gpg0: gpg0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg2: gpg2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg3: gpg3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg4: gpg4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg5: gpg5-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp0: gpp0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp1: gpp1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp2: gpp2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp3: gpp3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp4: gpp4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       /* PWM PERIC0 */
+       pwm_tout0: pwm-tout0-pins {
+               samsung,pins = "gpg0-0";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       pwm_tout1: pwm-tout1-pins {
+               samsung,pins = "gpg0-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       pwm_tout2: pwm-tout2-pins {
+               samsung,pins = "gpg0-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       pwm_tout3: pwm-tout3-pins {
+               samsung,pins = "gpg0-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI00 */
+       uart0_bus: uart0-bus-pins {
+               samsung,pins = "gpp0-0", "gpp0-1", "gpp0-2", "gpp0-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart0_bus_dual: uart0-bus-dual-pins {
+               samsung,pins = "gpp0-0", "gpp0-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI01 */
+       uart1_bus: uart1-bus-pins {
+               samsung,pins = "gpp0-4", "gpp0-5", "gpp0-6", "gpp0-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart1_bus_dual: uart1-bus-dual-pins {
+               samsung,pins = "gpp0-4", "gpp0-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI02 */
+       uart2_bus: uart2-bus-pins {
+               samsung,pins = "gpp1-0", "gpp1-1", "gpp1-2", "gpp1-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart2_bus_dual: uart2-bus-dual-pins {
+               samsung,pins = "gpp1-0", "gpp1-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI03 */
+       uart3_bus: uart3-bus-pins {
+               samsung,pins = "gpp1-4", "gpp1-5", "gpp1-6", "gpp1-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart3_bus_dual: uart3-bus-dual-pins {
+               samsung,pins = "gpp1-4", "gpp1-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI04 */
+       uart4_bus: uart4-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1", "gpp2-2", "gpp2-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart4_bus_dual: uart4-bus-dual-pins {
+               samsung,pins = "gpp2-0", "gpp2-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI05 */
+       uart5_bus: uart5-bus-pins {
+               samsung,pins = "gpp2-4", "gpp2-5", "gpp2-6", "gpp2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart5_bus_dual: uart5-bus-dual-pins {
+               samsung,pins = "gpp2-4", "gpp2-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI06 */
+       uart6_bus: uart6-bus-pins {
+               samsung,pins = "gpp3-0", "gpp3-1", "gpp3-2", "gpp3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart6_bus_dual: uart6-bus-dual-pins {
+               samsung,pins = "gpp3-0", "gpp3-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI07 */
+       uart7_bus: uart7-bus-pins {
+               samsung,pins = "gpp3-4", "gpp3-5", "gpp3-6", "gpp3-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart7_bus_dual: uart7-bus-dual-pins {
+               samsung,pins = "gpp3-4", "gpp3-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC0_USI08 */
+       uart8_bus: uart8-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1", "gpp4-2", "gpp4-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart8_bus_dual: uart8-bus-dual-pins {
+               samsung,pins = "gpp4-0", "gpp4-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI00  */
+       hsi2c0_bus: hsi2c0-bus-pins {
+               samsung,pins = "gpp0-0", "gpp0-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI00_I2C */
+       hsi2c1_bus: hsi2c1-bus-pins {
+               samsung,pins = "gpp0-2", "gpp0-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI01 */
+       hsi2c2_bus: hsi2c2-bus-pins {
+               samsung,pins = "gpp0-4", "gpp0-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI01_I2C */
+       hsi2c3_bus: hsi2c3-bus-pins {
+               samsung,pins = "gpp0-6", "gpp0-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI02 */
+       hsi2c4_bus: hsi2c4-bus-pins {
+               samsung,pins = "gpp1-0", "gpp1-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI02_I2C */
+       hsi2c5_bus: hsi2c5-bus-pins {
+               samsung,pins = "gpp1-2", "gpp1-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI03 */
+       hsi2c6_bus: hsi2c6-bus-pins {
+               samsung,pins = "gpp1-4", "gpp1-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI03_I2C */
+       hsi2c7_bus: hsi2c7-bus-pins {
+               samsung,pins = "gpp1-6", "gpp1-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI04 */
+       hsi2c8_bus: hsi2c8-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI04_I2C */
+       hsi2c9_bus: hsi2c9-bus-pins {
+               samsung,pins = "gpp2-2", "gpp2-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI05 */
+       hsi2c10_bus: hsi2c10-bus-pins {
+               samsung,pins = "gpp2-4", "gpp2-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI05_I2C */
+       hsi2c11_bus: hsi2c11-bus-pins {
+               samsung,pins = "gpp2-6", "gpp2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI06 */
+       hsi2c12_bus: hsi2c12-bus-pins {
+               samsung,pins = "gpp3-0", "gpp3-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI06_I2C */
+       hsi2c13_bus: hsi2c13-bus-pins {
+               samsung,pins = "gpp3-2", "gpp3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI07 */
+       hsi2c14_bus: hsi2c14-bus-pins {
+               samsung,pins = "gpp3-4", "gpp3-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI07_I2C */
+       hsi2c15_bus: hsi2c15-bus-pins {
+               samsung,pins = "gpp3-6", "gpp3-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI08 */
+       hsi2c16_bus: hsi2c16-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC0 USI08_I2C */
+       hsi2c17_bus: hsi2c17-bus-pins {
+               samsung,pins = "gpp4-2", "gpp4-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI00 */
+       spi0_bus: spi0-bus-pins {
+               samsung,pins = "gpp0-0", "gpp0-1", "gpp0-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi0_cs: spi0-cs-pins {
+               samsung,pins = "gpp0-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi0_cs_func: spi0-cs-func-pins {
+               samsung,pins = "gpp0-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI01 */
+       spi1_bus: spi1-bus-pins {
+               samsung,pins = "gpp0-4", "gpp0-5", "gpp0-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi1_cs: spi1-cs-pins {
+               samsung,pins = "gpp0-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi1_cs_func: spi1-cs-func-pins {
+               samsung,pins = "gpp0-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI02 */
+       spi2_bus: spi2-bus-pins {
+               samsung,pins = "gpp1-0", "gpp1-1", "gpp1-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi2_cs: spi2-cs-pins {
+               samsung,pins = "gpp1-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi2_cs_func: spi2-cs-func-pins {
+               samsung,pins = "gpp1-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI03 */
+       spi3_bus: spi3-bus-pins {
+               samsung,pins = "gpp1-4", "gpp1-5", "gpp1-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi3_cs: spi3-cs-pins {
+               samsung,pins = "gpp1-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi3_cs_func: spi3-cs-func-pins {
+               samsung,pins = "gpp1-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI04 */
+       spi4_bus: spi4-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1", "gpp2-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi4_cs: spi4-cs-pins {
+               samsung,pins = "gpp2-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi4_cs_func: spi4-cs-func-pins {
+               samsung,pins = "gpp2-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI05 */
+       spi5_bus: spi5-bus-pins {
+               samsung,pins = "gpp2-4", "gpp2-5", "gpp2-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi5_cs: spi5-cs-pins {
+               samsung,pins = "gpp2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi5_cs_func: spi5-cs-func-pins {
+               samsung,pins = "gpp2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI06 */
+       spi6_bus: spi6-bus-pins {
+               samsung,pins = "gpp3-0", "gpp3-1", "gpp3-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi6_cs: spi6-cs-pins {
+               samsung,pins = "gpp3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi6_cs_func: spi6-cs-func-pins {
+               samsung,pins = "gpp3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI07 */
+       spi7_bus: spi7-bus-pins {
+               samsung,pins = "gpp3-4", "gpp3-5", "gpp3-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi7_cs: spi7-cs-pins {
+               samsung,pins = "gpp3-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi7_cs_func: spi7-cs-func-pins {
+               samsung,pins = "gpp3-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC0 USI08 */
+       spi8_bus: spi8-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1", "gpp4-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi8_cs: spi8-cs-pins {
+               samsung,pins = "gpp4-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi8_cs_func: spi8-cs-func-pins {
+               samsung,pins = "gpp4-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I3C PERIC0 */
+       i3c0_bus: i3c0-bus-pins {
+               samsung,pins = "gpp2-6", "gpp2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c1_bus: i3c1-bus-pins {
+               samsung,pins = "gpp3-2", "gpp3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c2_bus: i3c2-bus-pins {
+               samsung,pins = "gpp3-6", "gpp3-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c3_bus: i3c3-bus-pins {
+               samsung,pins = "gpp4-2", "gpp4-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+};
+
+&pinctrl_peric1 {
+       gpg1: gpg1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp5: gpp5-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp6: gpp6-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp7: gpp7-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp8: gpp8-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp9: gpp9-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp10: gpp10-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp11: gpp11-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp12: gpp12-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       /* UART PERIC1 USI09 */
+       uart9_bus: uart9-bus-pins {
+               samsung,pins = "gpp5-0", "gpp5-1", "gpp5-2", "gpp5-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart9_bus_dual: uart9-bus-dual-pins {
+               samsung,pins = "gpp5-0", "gpp5-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI10 */
+       uart10_bus: uart10-bus-pins {
+               samsung,pins = "gpp5-4", "gpp5-5", "gpp5-6", "gpp5-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart10_bus_dual: uart10-bus-dual-pins {
+               samsung,pins = "gpp5-4", "gpp5-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI11 */
+       uart11_bus: uart11-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1", "gpp10-2", "gpp10-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart11_bus_dual: uart11-bus-dual-pins {
+               samsung,pins = "gpp10-0", "gpp10-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1_USI12 */
+       uart12_bus: uart12-bus-pins {
+               samsung,pins = "gpp7-0", "gpp7-1", "gpp7-2", "gpp7-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart12_bus_dual: uart12-bus-dual-pins {
+               samsung,pins = "gpp7-0", "gpp7-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1_USI13 */
+       uart13_bus: uart13-bus-pins {
+               samsung,pins = "gpp7-4", "gpp7-5", "gpp7-6", "gpp7-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart13_bus_dual: uart13-bus-dual-pins {
+               samsung,pins = "gpp7-4", "gpp7-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI14 */
+       uart14_bus: uart14-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1", "gpp8-2", "gpp8-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart14_bus_dual: uart14-bus-dual-pins {
+               samsung,pins = "gpp8-0", "gpp8-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI15 */
+       uart15_bus: uart15-bus-pins {
+               samsung,pins = "gpp11-0", "gpp11-1", "gpp11-2", "gpp11-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart15_bus_dual: uart15-bus-dual-pins {
+               samsung,pins = "gpp11-0", "gpp11-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI16 */
+       uart16_bus: uart16-bus-pins {
+               samsung,pins = "gpp9-0", "gpp9-1", "gpp9-2", "gpp9-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart16_bus_dual: uart16-bus-dual-pins {
+               samsung,pins = "gpp9-0", "gpp9-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* UART PERIC1 USI17 */
+       uart17_bus: uart17-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1", "gpp12-2", "gpp12-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       uart17_bus_dual: uart17-bus-dual-pins {
+               samsung,pins = "gpp12-0", "gpp12-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI09 */
+       hsi2c18_bus: hsi2c18-bus-pins {
+               samsung,pins = "gpp5-0", "gpp5-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI09_I2C */
+       hsi2c19_bus: hsi2c19-bus-pins {
+               samsung,pins = "gpp5-2", "gpp5-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI10 */
+       hsi2c20_bus: hsi2c20-bus-pins {
+               samsung,pins = "gpp5-4", "gpp5-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI10_I2C */
+       hsi2c21_bus: hsi2c21-bus-pins {
+               samsung,pins = "gpp5-6", "gpp5-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI11 */
+       hsi2c22_bus: hsi2c22-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI11_I2C */
+       hsi2c23_bus: hsi2c23-bus-pins {
+               samsung,pins = "gpp10-2", "gpp10-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI12 */
+       hsi2c24_bus: hsi2c24-bus-pins {
+               samsung,pins = "gpp7-0", "gpp7-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI12_I2C */
+       hsi2c25_bus: hsi2c25-bus-pins {
+               samsung,pins = "gpp7-2", "gpp7-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI13 */
+       hsi2c26_bus: hsi2c26-bus-pins {
+               samsung,pins = "gpp7-4", "gpp7-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI13_I2C */
+       hsi2c27_bus: hsi2c27-bus-pins {
+               samsung,pins = "gpp7-6", "gpp7-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI14 */
+       hsi2c28_bus: hsi2c28-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI14_I2C */
+       hsi2c29_bus: hsi2c29-bus-pins {
+               samsung,pins = "gpp8-2", "gpp8-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI15 */
+       hsi2c30_bus: hsi2c30-bus-pins {
+               samsung,pins = "gpp11-0", "gpp11-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI15_I2C */
+       hsi2c31_bus: hsi2c31-bus-pins {
+               samsung,pins = "gpp11-2", "gpp11-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI16 */
+       hsi2c32_bus: hsi2c32-bus-pins {
+               samsung,pins = "gpp9-0", "gpp9-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI16_I2C */
+       hsi2c33_bus: hsi2c33-bus-pins {
+               samsung,pins = "gpp9-2", "gpp9-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI17 */
+       hsi2c34_bus: hsi2c34-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I2C PERIC1 USI17_I2C */
+       hsi2c35_bus: hsi2c35-bus-pins {
+               samsung,pins = "gpp12-2", "gpp12-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI09 */
+       spi9_bus: spi9-bus-pins {
+               samsung,pins = "gpp5-0", "gpp5-1", "gpp5-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi9_cs: spi9-cs-pins {
+               samsung,pins = "gpp5-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi9_cs_func: spi9-cs-func-pins {
+               samsung,pins = "gpp5-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI10 */
+       spi10_bus: spi10-bus-pins {
+               samsung,pins = "gpp5-4", "gpp5-5", "gpp5-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi10_cs: spi10-cs-pins {
+               samsung,pins = "gpp5-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi10_cs_func: spi10-cs-func-pins {
+               samsung,pins = "gpp5-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI11 */
+       spi11_bus: spi11-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1", "gpp10-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi11_cs: spi11-cs-pins {
+               samsung,pins = "gpp10-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi11_cs_func: spi11-cs-func-pins {
+               samsung,pins = "gpp10-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI12 */
+       spi12_bus: spi12-bus-pins {
+               samsung,pins = "gpp7-0", "gpp7-1", "gpp7-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi12_cs: spi12-cs-pins {
+               samsung,pins = "gpp7-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi12_cs_func: spi12-cs-func-pins {
+               samsung,pins = "gpp7-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI13 */
+       spi13_bus: spi13-bus-pins {
+               samsung,pins = "gpp7-4", "gpp7-5", "gpp7-6";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi13_cs: spi13-cs-pins {
+               samsung,pins = "gpp7-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi13_cs_func: spi13-cs-func-pins {
+               samsung,pins = "gpp7-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI14 */
+       spi14_bus: spi14-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1", "gpp8-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi14_cs: spi14-cs-pins {
+               samsung,pins = "gpp8-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi14_cs_func: spi14-cs-func-pins {
+               samsung,pins = "gpp8-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI15 */
+       spi15_bus: spi15-bus-pins {
+               samsung,pins = "gpp11-0", "gpp11-1", "gpp11-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi15_cs: spi15-cs-pins {
+               samsung,pins = "gpp11-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi15_cs_func: spi15-cs-func-pins {
+               samsung,pins = "gpp11-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI16 */
+       spi16_bus: spi16-bus-pins {
+               samsung,pins = "gpp9-0", "gpp9-1", "gpp9-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi16_cs: spi16-cs-pins {
+               samsung,pins = "gpp9-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi16_cs_func: spi16-cs-func-pins {
+               samsung,pins = "gpp9-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* SPI PERIC1 USI17 */
+       spi17_bus: spi17-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1", "gpp12-2";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi17_cs: spi17-cs-pins {
+               samsung,pins = "gpp12-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       spi17_cs_func: spi17-cs-func-pins {
+               samsung,pins = "gpp12-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       /* I3C PERIC1 */
+       i3c4_bus: i3c4-bus-pins {
+               samsung,pins = "gpp7-2", "gpp7-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c5_bus: i3c5-bus-pins {
+               samsung,pins = "gpp7-6", "gpp7-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c6_bus: i3c6-bus-pins {
+               samsung,pins = "gpp8-2", "gpp8-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+
+       i3c7_bus: i3c7-bus-pins {
+               samsung,pins = "gpp11-2", "gpp11-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
+};
diff --git a/src/arm64/exynos/exynosautov920-sadk.dts b/src/arm64/exynos/exynosautov920-sadk.dts
new file mode 100644 (file)
index 0000000..a397f06
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung's ExynosAutov920 SADK board device tree source
+ *
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+#include "exynosautov920.dtsi"
+#include "exynos-pinctrl.h"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Samsung ExynosAutov920 SADK board";
+       compatible = "samsung,exynosautov920-sadk", "samsung,exynosautov920";
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &serial_0;
+       };
+
+       chosen {
+               stdout-path = &serial_0;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key_wakeup &key_back>;
+
+               key-wakeup {
+                       label = "KEY_WAKEUP";
+                       linux,code = <KEY_WAKEUP>;
+                       gpios = <&gpa0 0 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               key-back {
+                       label = "KEY_BACK";
+                       linux,code = <KEY_BACK>;
+                       gpios = <&gpp6 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x70000000>,
+                     <0x8 0x80000000 0x1 0xfba00000>,
+                     <0xa 0x00000000 0x2 0x00000000>;
+       };
+};
+
+&pinctrl_alive {
+       key_wakeup: key-wakeup-pins {
+               samsung,pins = "gpa0-0";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+       };
+};
+
+&pinctrl_peric1 {
+       key_back: key-back-pins {
+               samsung,pins = "gpp6-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_tout0>;
+       status = "okay";
+};
+
+&serial_0 {
+       status = "okay";
+};
+
+&usi_0 {
+       samsung,clkreq-on; /* needed for UART mode */
+       status = "okay";
+};
+
+&xtcxo {
+       clock-frequency = <38400000>;
+};
diff --git a/src/arm64/exynos/exynosautov920.dtsi b/src/arm64/exynos/exynosautov920.dtsi
new file mode 100644 (file)
index 0000000..c1c8566
--- /dev/null
@@ -0,0 +1,312 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung's ExynosAutov920 SoC device tree source
+ *
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ *
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/samsung,exynos-usi.h>
+
+/ {
+       compatible = "samsung,exynosautov920";
+       #address-cells = <2>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&gic>;
+
+       aliases {
+               pinctrl0 = &pinctrl_alive;
+               pinctrl1 = &pinctrl_aud;
+               pinctrl2 = &pinctrl_hsi0;
+               pinctrl3 = &pinctrl_hsi1;
+               pinctrl4 = &pinctrl_hsi2;
+               pinctrl5 = &pinctrl_hsi2ufs;
+               pinctrl6 = &pinctrl_peric0;
+               pinctrl7 = &pinctrl_peric1;
+       };
+
+       arm-pmu {
+               compatible = "arm,cortex-a78-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       xtcxo: clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "oscclk";
+       };
+
+       /*
+        * FIXME: Keep the stub clock for serial driver, until proper clock
+        * driver is implemented.
+        */
+       clock_usi: clock-usi {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <200000000>;
+               clock-output-names = "usi";
+       };
+
+       cpus: cpus {
+               #address-cells = <2>;
+               #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>;
+                               };
+                       };
+
+                       cluster2 {
+                               core0 {
+                                       cpu = <&cpu8>;
+                               };
+                               core1 {
+                                       cpu = <&cpu9>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+               };
+
+               cpu4: cpu@10000 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x10000>;
+                       enable-method = "psci";
+               };
+
+               cpu5: cpu@10100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x10100>;
+                       enable-method = "psci";
+               };
+
+               cpu6: cpu@10200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x10200>;
+                       enable-method = "psci";
+               };
+
+               cpu7: cpu@10300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x10300>;
+                       enable-method = "psci";
+               };
+
+               cpu8: cpu@20000 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x20000>;
+                       enable-method = "psci";
+               };
+
+               cpu9: cpu@20100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78ae";
+                       reg = <0x0 0x20100>;
+                       enable-method = "psci";
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x0 0x20000000>;
+
+               chipid@10000000 {
+                       compatible = "samsung,exynosautov920-chipid",
+                                    "samsung,exynos850-chipid";
+                       reg = <0x10000000 0x24>;
+               };
+
+               gic: interrupt-controller@10400000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x10400000 0x10000>,
+                             <0x10460000 0x140000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               syscon_peric0: syscon@10820000 {
+                       compatible = "samsung,exynosautov920-peric0-sysreg",
+                                    "syscon";
+                       reg = <0x10820000 0x2000>;
+               };
+
+               pinctrl_peric0: pinctrl@10830000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x10830000 0x10000>;
+                       interrupts = <GIC_SPI 753 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               usi_0: usi@108800c0 {
+                       compatible = "samsung,exynosautov920-usi",
+                                    "samsung,exynos850-usi";
+                       reg = <0x108800c0 0x20>;
+                       samsung,sysreg = <&syscon_peric0 0x1000>;
+                       samsung,mode = <USI_V2_UART>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       clocks = <&clock_usi>, <&clock_usi>;
+                       clock-names = "pclk", "ipclk";
+                       status = "disabled";
+
+                       serial_0: serial@10880000 {
+                               compatible = "samsung,exynosautov920-uart",
+                                            "samsung,exynos850-uart";
+                               reg = <0x10880000 0xc0>;
+                               interrupts = <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&uart0_bus>;
+                               clocks = <&clock_usi>, <&clock_usi>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               samsung,uart-fifosize = <256>;
+                               status = "disabled";
+                       };
+               };
+
+               pwm: pwm@109b0000 {
+                       compatible = "samsung,exynosautov920-pwm",
+                                    "samsung,exynos4210-pwm";
+                       reg = <0x109b0000 0x100>;
+                       samsung,pwm-outputs = <0>, <1>, <2>, <3>;
+                       #pwm-cells = <3>;
+                       clocks = <&xtcxo>;
+                       clock-names = "timers";
+                       status = "disabled";
+               };
+
+               syscon_peric1: syscon@10c20000 {
+                       compatible = "samsung,exynosautov920-peric1-sysreg",
+                                    "syscon";
+                       reg = <0x10c20000 0x2000>;
+               };
+
+               pinctrl_peric1: pinctrl@10c30000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x10c30000 0x10000>;
+                       interrupts = <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pinctrl_alive: pinctrl@11850000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x11850000 0x10000>;
+
+                       wakeup-interrupt-controller {
+                               compatible = "samsung,exynosautov920-wakeup-eint";
+                       };
+               };
+
+               pmu_system_controller: system-controller@11860000 {
+                       compatible = "samsung,exynosautov920-pmu",
+                                    "samsung,exynos7-pmu","syscon";
+                       reg = <0x11860000 0x10000>;
+               };
+
+               pinctrl_hsi0: pinctrl@16040000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x16040000 0x10000>;
+                       interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pinctrl_hsi1: pinctrl@16450000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x16450000 0x10000>;
+                       interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pinctrl_hsi2: pinctrl@16c10000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x16c10000 0x10000>;
+                       interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pinctrl_hsi2ufs: pinctrl@16d20000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x16d20000 0x10000>;
+                       interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pinctrl_aud: pinctrl@1a460000 {
+                       compatible = "samsung,exynosautov920-pinctrl";
+                       reg = <0x1a460000 0x10000>;
+               };
+       };
+
+       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>,
+                            <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "exynosautov920-pinctrl.dtsi"
diff --git a/src/arm64/exynos/google/gs101-oriole.dts b/src/arm64/exynos/google/gs101-oriole.dts
new file mode 100644 (file)
index 0000000..4a71f75
--- /dev/null
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Oriole Device Tree
+ *
+ * Copyright 2021-2023 Google LLC
+ * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "gs101-pinctrl.h"
+#include "gs101.dtsi"
+
+/ {
+       model = "Oriole";
+       compatible = "google,gs101-oriole", "google,gs101";
+
+       aliases {
+               serial0 = &serial_0;
+       };
+
+       chosen {
+               /* Bootloader expects bootargs specified otherwise it crashes */
+               bootargs = "";
+               stdout-path = &serial_0;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
+
+               button-vol-down {
+                       label = "KEY_VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&gpa7 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               button-vol-up {
+                       label = "KEY_VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&gpa8 1 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               button-power {
+                       label = "KEY_POWER";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpa10 1 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+};
+
+&ext_24_5m {
+       clock-frequency = <24576000>;
+};
+
+&ext_200m {
+       clock-frequency = <200000000>;
+};
+
+&pinctrl_far_alive {
+       key_voldown: key-voldown-pins {
+               samsung,pins = "gpa7-3";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       key_volup: key-volup-pins {
+               samsung,pins = "gpa8-1";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&pinctrl_gpio_alive {
+       key_power: key-power-pins {
+               samsung,pins = "gpa10-1";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&serial_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_bus>;
+       status = "okay";
+};
+
+&usi_uart {
+       samsung,clkreq-on; /* needed for UART mode */
+       status = "okay";
+};
+
+&watchdog_cl0 {
+       timeout-sec = <30>;
+       status = "okay";
+};
diff --git a/src/arm64/exynos/google/gs101-pinctrl.dtsi b/src/arm64/exynos/google/gs101-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..e6a9776
--- /dev/null
@@ -0,0 +1,1249 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * GS101 SoC pin-mux and pin-config device tree source
+ *
+ * Copyright 2019-2023 Google LLC
+ * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
+ */
+
+#include "gs101-pinctrl.h"
+
+&pinctrl_gpio_alive {
+       gpa0: gpa0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa1: gpa1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa2: gpa2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa3: gpa3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa4: gpa4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa5: gpa5-gpio-bank  {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa9: gpa9-gpio-bank  {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa10: gpa10-gpio-bank  {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       uart15_bus: uart15-bus-pins {
+               samsung,pins = "gpa2-3", "gpa2-4";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       uart16_bus: uart16-bus-pins {
+               samsung,pins = "gpa3-0", "gpa3-1", "gpa3-2", "gpa3-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       uart17_bus: uart17-bus-pins {
+               samsung,pins = "gpa4-0", "gpa4-1", "gpa4-2", "gpa4-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi15_bus: spi15-bus-pins {
+               samsung,pins = "gpa4-0", "gpa4-1", "gpa4-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi15_cs: spi15-cs-pins {
+               samsung,pins = "gpa4-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&pinctrl_far_alive {
+       gpa6: gpa6-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa7: gpa7-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa8: gpa8-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       gpa11: gpa11-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+};
+
+&pinctrl_gsacore {
+       gps0: gps0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gps1: gps1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gps2: gps2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_gsactrl {
+       gps3: gps3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&pinctrl_hsi1 {
+       gph0: gph0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph1: gph1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       pcie0_clkreq: pcie0-clkreq-pins{
+               samsung,pins = "gph0-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_10_MA>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_UP>;
+       };
+
+       pcie0_perst: pcie0-perst-pins {
+               samsung,pins = "gph0-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-drv = <GS101_PIN_DRV_10_MA>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+       };
+};
+
+&pinctrl_hsi2 {
+       gph2: gph2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph3: gph3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph4: gph4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       sd2_clk: sd2-clk-pins {
+               samsung,pins = "gph4-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_7_5_MA>;
+       };
+
+       sd2_cmd: sd2-cmd-pins {
+               samsung,pins = "gph4-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_7_5_MA>;
+       };
+
+       sd2_bus1: sd2-bus-width1-pins {
+               samsung,pins = "gph4-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_7_5_MA>;
+       };
+
+       sd2_bus4: sd2-bus-width4-pins {
+               samsung,pins = "gph4-3", "gph4-4", "gph4-5";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_7_5_MA>;
+       };
+
+       sd2_clk_fast_slew_rate_1x: sd2-clk-fast-slew-rate-1x-pins {
+               samsung,pins = "gph4-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       sd2_clk_fast_slew_rate_2x: sd2-clk-fast-slew-rate-2x-pins {
+               samsung,pins = "gph4-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sd2_clk_fast_slew_rate_3x: sd2-clk-fast-slew-rate-3x-pins {
+               samsung,pins = "gph4-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_7_5_MA>;
+       };
+
+       sd2_clk_fast_slew_rate_4x: sd2-clk-fast-slew-rate-4x-pins {
+               samsung,pins = "gph4-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_10_MA>;
+       };
+
+       ufs_rst_n: ufs-rst-n-pins {
+               samsung,pins = "gph3-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_NONE>;
+       };
+
+       ufs_refclk_out: ufs-refclk-out-pins {
+               samsung,pins = "gph3-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_NONE>;
+       };
+
+       pcie1_clkreq: pcie1-clkreq-pins {
+               samsung,pins = "gph2-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_UP>;
+               samsung,pin-drv = <GS101_PIN_DRV_10_MA>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_UP>;
+       };
+
+       pcie1_perst: pcie1-perst-pins {
+               samsung,pins = "gph2-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-drv = <GS101_PIN_DRV_10_MA>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+       };
+};
+
+&pinctrl_peric0 {
+       gpp0: gpp0-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp1: gpp1-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp2: gpp2-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp3: gpp3-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp4: gpp4-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp5: gpp5-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp6: gpp6-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp7: gpp7-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp8: gpp8-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp9: gpp9-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp10: gpp10-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp11: gpp11-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp12: gpp12-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp13: gpp13-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp14: gpp14-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp15: gpp15-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp16: gpp16-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp17: gpp17-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp18: gpp18-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp19: gpp19-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       /* USI_PERIC0_UART_DBG */
+       uart0_bus: uart0-bus-pins {
+               samsung,pins = "gpp1-2", "gpp1-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       disp_te_pri_on: disp-te-pri-on-pins {
+               samsung,pins = "gpp0-3";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+       };
+
+       disp_te_pri_off: disp-te-pri-off-pins {
+               samsung,pins = "gpp0-3";
+               samsung,pin-function = <GS101_PIN_FUNC_INPUT>;
+       };
+
+       disp_te_sec_on: disp-te-sec-on-pins {
+               samsung,pins = "gpp0-4";
+               samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+       };
+
+       disp_te_sec_off: disp-te-sec-off-pins {
+               samsung,pins = "gpp0-4";
+               samsung,pin-function = <GS101_PIN_FUNC_INPUT>;
+       };
+
+       sensor_mclk1_out: sensor-mclk1-out-pins {
+               samsung,pins = "gpp3-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk1_fn: sensor-mclk1-fn-pins {
+               samsung,pins = "gpp3-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk2_out: sensor-mclk2-out-pins {
+               samsung,pins = "gpp5-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk2_fn: sensor-mclk2-fn-pins {
+               samsung,pins = "gpp5-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk3_out: sensor-mclk3-out-pins {
+               samsung,pins = "gpp7-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk3_fn: sensor-mclk3-fn-pins {
+               samsung,pins = "gpp7-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk4_out: sensor-mclk4-out-pins {
+               samsung,pins = "gpp9-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk4_fn: sensor-mclk4-fn-pins {
+               samsung,pins = "gpp9-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk5_out: sensor-mclk5-out-pins {
+               samsung,pins = "gpp11-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk5_fn: sensor-mclk5-fn-pins {
+               samsung,pins = "gpp11-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk6_out: sensor-mclk6-out-pins {
+               samsung,pins = "gpp13-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk6_fn: sensor-mclk6-fn-pins {
+               samsung,pins = "gpp13-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk7_out: sensor-mclk7-out-pins {
+               samsung,pins = "gpp15-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk7_fn: sensor-mclk7-fn-pins {
+               samsung,pins = "gpp15-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk8_out: sensor-mclk8-out-pins {
+               samsung,pins = "gpp17-0";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_DOWN>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       sensor_mclk8_fn: sensor-mclk8-fn-pins {
+               samsung,pins = "gpp17-0";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
+       };
+
+       hsi2c14_bus: hsi2c14-bus-pins {
+               samsung,pins = "gpp18-0", "gpp18-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart14_bus_single: uart14-bus-pins {
+               samsung,pins = "gpp18-0", "gpp18-1",
+                              "gpp18-2", "gpp18-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi14_bus: spi14-bus-pins {
+               samsung,pins = "gpp18-0", "gpp18-1", "gpp18-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi14_cs: spi14-cs-pins {
+               samsung,pins = "gpp18-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi14_cs_func: spi14-cs-func-pins {
+               samsung,pins = "gpp18-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c8_bus: hsi2c8-bus-pins {
+               samsung,pins = "gpp16-0", "gpp16-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+               samsung,pin-pud-pdn = <GS101_PIN_PDN_OUT0>;
+       };
+
+       uart8_bus_single: uart8-bus-pins {
+               samsung,pins = "gpp16-0", "gpp16-1", "gpp16-2",
+                              "gpp16-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi8_bus: spi8-bus-pins {
+               samsung,pins = "gpp16-0", "gpp16-1", "gpp16-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi8_cs: spi8-cs-pins {
+               samsung,pins = "gpp16-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi8_cs_func: spi8-cs-func-pins {
+               samsung,pins = "gpp16-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c7_bus: hsi2c7-bus-pins {
+               samsung,pins = "gpp14-0", "gpp14-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart7_bus_single: uart7-bus-pins {
+               samsung,pins = "gpp14-0", "gpp14-1",
+                              "gpp14-2", "gpp14-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi7_bus: spi7-bus-pins {
+               samsung,pins = "gpp14-0", "gpp14-1", "gpp14-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi7_cs: spi7-cs-pins {
+               samsung,pins = "gpp14-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi7_cs_func: spi7-cs-func-pins {
+               samsung,pins = "gpp14-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c6_bus: hsi2c6-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart6_bus_single: uart6-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1",
+                              "gpp12-2", "gpp12-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi6_bus: spi6-bus-pins {
+               samsung,pins = "gpp12-0", "gpp12-1", "gpp12-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi6_cs: spi6-cs-pins {
+               samsung,pins = "gpp12-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi6_cs_func: spi6-cs-func-pins {
+               samsung,pins = "gpp12-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c5_bus: hsi2c5-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart5_bus_single: uart5-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1",
+                              "gpp10-2", "gpp10-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi5_bus: spi5-bus-pins {
+               samsung,pins = "gpp10-0", "gpp10-1", "gpp10-2";
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi5_cs_func: spi5-cs-func-pins {
+               samsung,pins = "gpp10-3";
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-con-pdn = <GS101_PIN_PDN_PREV>;
+               samsung,pin-pud-pdn = <GS101_PIN_PULL_NONE>;
+       };
+
+       hsi2c4_bus: hsi2c4-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart4_bus_single: uart4-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1",
+                              "gpp8-2", "gpp8-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi4_bus: spi4-bus-pins {
+               samsung,pins = "gpp8-0", "gpp8-1", "gpp8-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi4_cs: spi4-cs-pins {
+               samsung,pins = "gpp8-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi4_cs_func: spi4-cs-func-pins {
+               samsung,pins = "gpp8-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c3_bus: hsi2c3-bus-pins {
+               samsung,pins = "gpp6-0", "gpp6-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart3_bus_single: uart3-bus-pins {
+               samsung,pins = "gpp6-0", "gpp6-1",
+                              "gpp6-2", "gpp6-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi3_bus: spi3-bus-pins {
+               samsung,pins = "gpp6-0", "gpp6-1", "gpp6-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi3_cs: spi3-cs-pins {
+               samsung,pins = "gpp6-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi3_cs_func: spi3-cs-func-pins {
+               samsung,pins = "gpp6-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c2_bus: hsi2c2-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart2_bus_single: uart2-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1",
+                              "gpp4-2", "gpp4-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi2_bus: spi2-bus-pins {
+               samsung,pins = "gpp4-0", "gpp4-1", "gpp4-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi2_cs: spi2-cs-pins {
+               samsung,pins = "gpp4-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi2_cs_func: spi2-cs-func-pins {
+               samsung,pins = "gpp4-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c1_bus: hsi2c1-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart1_bus_single: uart1-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1",
+                              "gpp2-2", "gpp2-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi1_bus: spi1-bus-pins {
+               samsung,pins = "gpp2-0", "gpp2-1", "gpp2-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi1_cs: spi1-cs-pins {
+               samsung,pins = "gpp2-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi1_cs_func: spi1-cs-func-pins {
+               samsung,pins = "gpp2-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
+
+&pinctrl_peric1 {
+       gpp20: gpp20-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp21: gpp21-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp22: gpp22-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp23: gpp23-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp24: gpp24-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp25: gpp25-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp26: gpp26-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpp27: gpp27-gpio-bank {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       hsi2c13_bus: hsi2c13-bus-pins  {
+               samsung,pins = "gpp25-0", "gpp25-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart13_bus_single: uart13-bus-pins {
+               samsung,pins = "gpp25-0", "gpp25-1",
+                              "gpp25-2", "gpp25-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi13_bus: spi13-bus-pins {
+               samsung,pins = "gpp25-0", "gpp25-1", "gpp25-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi13_cs: spi13-cs-pins {
+               samsung,pins = "gpp25-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi13_cs_func: spi13-cs-func-pins {
+               samsung,pins = "gpp25-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c12_bus: hsi2c12-bus-pins {
+               samsung,pins = "gpp23-4", "gpp23-5";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart12_bus_single: uart12-bus-pins {
+               samsung,pins = "gpp23-4", "gpp23-5",
+                              "gpp23-6", "gpp23-7";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi12_bus: spi12-bus-pins {
+               samsung,pins = "gpp23-4", "gpp23-5", "gpp23-6";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi14_cs2: spi14-cs2-pins {
+               samsung,pins = "gpp23-6";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi12_cs: spi12-cs-pins {
+               samsung,pins = "gpp23-7";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi12_cs_func: spi12-cs-func-pins {
+               samsung,pins = "gpp23-7";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c11_bus: hsi2c11-bus-pins {
+               samsung,pins = "gpp23-0", "gpp23-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart11_bus_single: uart11-bus-pins {
+               samsung,pins = "gpp23-0", "gpp23-1",
+                              "gpp23-2", "gpp23-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi11_bus: spi11-bus-pins {
+               samsung,pins = "gpp23-0", "gpp23-1", "gpp23-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi11_cs: spi11-cs-pins {
+               samsung,pins = "gpp23-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi11_cs_func: spi11-cs-func-pins {
+               samsung,pins = "gpp23-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c10_bus: hsi2c10-bus-pins {
+               samsung,pins = "gpp21-0", "gpp21-1";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart10_bus_single: uart10-bus-pins {
+               samsung,pins = "gpp21-0", "gpp21-1",
+                              "gpp21-2", "gpp21-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi10_bus: spi10-bus-pins {
+               samsung,pins = "gpp21-0", "gpp21-1", "gpp21-2";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi10_cs: spi10-cs-pins {
+               samsung,pins = "gpp21-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi10_cs_func: spi10-cs-func-pins {
+               samsung,pins = "gpp21-3";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c9_bus: hsi2c9-bus-pins {
+               samsung,pins = "gpp20-4", "gpp20-5";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart9_bus_single: uart9-bus-pins {
+               samsung,pins = "gpp20-4", "gpp20-5",
+                              "gpp20-6", "gpp20-7";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi9_bus: spi9-bus-pins {
+               samsung,pins = "gpp20-4", "gpp20-5", "gpp20-6";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi9_cs: spi9-cs-pins {
+               samsung,pins = "gpp20-7";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi9_cs_func: spi9-cs-func-pins {
+               samsung,pins = "gpp20-7";
+               samsung,pin-function = <GS101_PIN_FUNC_2>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       hsi2c0_bus: hsi2c0-bus-pins {
+               samsung,pins = "gpp20-0", "gpp20-1";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       uart0_bus_single: uart0-bus-pins {
+               samsung,pins = "gpp20-0", "gpp20-1",
+                              "gpp20-2", "gpp20-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+       };
+
+       spi0_bus: spi0-bus-pins {
+               samsung,pins = "gpp20-0", "gpp20-1", "gpp20-2";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi0_cs: spi0-cs-pins {
+               samsung,pins = "gpp20-3";
+               samsung,pin-function = <GS101_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+
+       spi0_cs_func: spi0-cs-func-pins {
+               samsung,pins = "gpp20-3";
+               samsung,pin-function = <GS101_PIN_FUNC_3>;
+               samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+               samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
+       };
+};
diff --git a/src/arm64/exynos/google/gs101-pinctrl.h b/src/arm64/exynos/google/gs101-pinctrl.h
new file mode 100644 (file)
index 0000000..b7d276b
--- /dev/null
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Pinctrl binding constants for GS101
+ *
+ * Copyright 2020-2023 Google LLC
+ */
+
+#ifndef __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__
+#define __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__
+
+#define GS101_PIN_PULL_NONE            0
+#define GS101_PIN_PULL_DOWN            1
+#define GS101_PIN_PULL_UP              3
+
+/* Pin function in power down mode */
+#define GS101_PIN_PDN_OUT0             0
+#define GS101_PIN_PDN_OUT1             1
+#define GS101_PIN_PDN_INPUT            2
+#define GS101_PIN_PDN_PREV             3
+
+/* GS101 drive strengths */
+#define GS101_PIN_DRV_2_5_MA           0
+#define GS101_PIN_DRV_5_MA             1
+#define GS101_PIN_DRV_7_5_MA           2
+#define GS101_PIN_DRV_10_MA            3
+
+#define GS101_PIN_FUNC_INPUT           0
+#define GS101_PIN_FUNC_OUTPUT          1
+#define GS101_PIN_FUNC_2               2
+#define GS101_PIN_FUNC_3               3
+#define GS101_PIN_FUNC_EINT            0xf
+
+#endif /* __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__ */
diff --git a/src/arm64/exynos/google/gs101.dtsi b/src/arm64/exynos/google/gs101.dtsi
new file mode 100644 (file)
index 0000000..d838e3a
--- /dev/null
@@ -0,0 +1,473 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * GS101 SoC
+ *
+ * Copyright 2019-2023 Google LLC
+ * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
+ */
+
+#include <dt-bindings/clock/google,gs101.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/samsung,exynos-usi.h>
+
+/ {
+       compatible = "google,gs101";
+       #address-cells = <2>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&gic>;
+
+       aliases {
+               pinctrl0 = &pinctrl_gpio_alive;
+               pinctrl1 = &pinctrl_far_alive;
+               pinctrl2 = &pinctrl_gsacore;
+               pinctrl3 = &pinctrl_gsactrl;
+               pinctrl4 = &pinctrl_peric0;
+               pinctrl5 = &pinctrl_peric1;
+               pinctrl6 = &pinctrl_hsi1;
+               pinctrl7 = &pinctrl_hsi2;
+       };
+
+       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>;
+                               };
+                       };
+
+                       cluster2 {
+                               core0 {
+                                       cpu = <&cpu6>;
+                               };
+                               core1 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0000>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ANANKE_CPU_SLEEP>;
+                       capacity-dmips-mhz = <250>;
+                       dynamic-power-coefficient = <70>;
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0100>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ANANKE_CPU_SLEEP>;
+                       capacity-dmips-mhz = <250>;
+                       dynamic-power-coefficient = <70>;
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0200>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ANANKE_CPU_SLEEP>;
+                       capacity-dmips-mhz = <250>;
+                       dynamic-power-coefficient = <70>;
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0300>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ANANKE_CPU_SLEEP>;
+                       capacity-dmips-mhz = <250>;
+                       dynamic-power-coefficient = <70>;
+               };
+
+               cpu4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0400>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ENYO_CPU_SLEEP>;
+                       capacity-dmips-mhz = <620>;
+                       dynamic-power-coefficient = <284>;
+               };
+
+               cpu5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0500>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&ENYO_CPU_SLEEP>;
+                       capacity-dmips-mhz = <620>;
+                       dynamic-power-coefficient = <284>;
+               };
+
+               cpu6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-x1";
+                       reg = <0x0600>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&HERA_CPU_SLEEP>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <650>;
+               };
+
+               cpu7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-x1";
+                       reg = <0x0700>;
+                       enable-method = "psci";
+                       cpu-idle-states =  <&HERA_CPU_SLEEP>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <650>;
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       ANANKE_CPU_SLEEP: cpu-ananke-sleep {
+                               idle-state-name = "c2";
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <70>;
+                               exit-latency-us = <160>;
+                               min-residency-us = <2000>;
+                       };
+
+                       ENYO_CPU_SLEEP: cpu-enyo-sleep {
+                               idle-state-name = "c2";
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <150>;
+                               exit-latency-us = <190>;
+                               min-residency-us = <2500>;
+                       };
+
+                       HERA_CPU_SLEEP: cpu-hera-sleep {
+                               idle-state-name = "c2";
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <235>;
+                               exit-latency-us = <220>;
+                               min-residency-us = <3500>;
+                       };
+               };
+       };
+
+       /* TODO replace with CCF clock */
+       dummy_clk: clock-3 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12345>;
+               clock-output-names = "pclk";
+       };
+
+       /* ect node is required to be present by bootloader */
+       ect {
+       };
+
+       ext_24_5m: clock-1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "oscclk";
+       };
+
+       ext_200m: clock-2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "ext-200m";
+       };
+
+       pmu-0 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
+       };
+
+       pmu-1 {
+               compatible = "arm,cortex-a76-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
+       };
+
+       pmu-2 {
+               compatible = "arm,cortex-x1-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster2>;
+       };
+
+       pmu-3 {
+               compatible = "arm,dsu-pmu";
+               interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>;
+               cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
+                      <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges;
+
+               gsa_reserved_protected: gsa@90200000 {
+                       reg = <0x0 0x90200000 0x400000>;
+                       no-map;
+               };
+
+               tpu_fw_reserved: tpu-fw@93000000 {
+                       reg = <0x0 0x93000000 0x1000000>;
+                       no-map;
+               };
+
+               aoc_reserve: aoc@94000000 {
+                       reg = <0x0 0x94000000 0x03000000>;
+                       no-map;
+               };
+
+               abl_reserved: abl@f8800000 {
+                       reg = <0x0 0xf8800000 0x02000000>;
+                       no-map;
+               };
+
+               dss_log_reserved: dss-log-reserved@fd3f0000 {
+                       reg = <0x0 0xfd3f0000 0x0000e000>;
+                       no-map;
+               };
+
+               debug_kinfo_reserved: debug-kinfo-reserved@fd3fe000 {
+                       reg = <0x0 0xfd3fe000 0x00001000>;
+                       no-map;
+               };
+
+               bldr_log_reserved: bldr-log-reserved@fd800000 {
+                       reg = <0x0 0xfd800000 0x00100000>;
+                       no-map;
+               };
+
+               bldr_log_hist_reserved: bldr-log-hist-reserved@fd900000 {
+                       reg = <0x0 0xfd900000 0x00002000>;
+                       no-map;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x0 0x40000000>;
+
+               cmu_misc: clock-controller@10010000 {
+                       compatible = "google,gs101-cmu-misc";
+                       reg = <0x10010000 0x8000>;
+                       #clock-cells = <1>;
+                       clocks = <&cmu_top CLK_DOUT_CMU_MISC_BUS>,
+                                <&cmu_top CLK_DOUT_CMU_MISC_SSS>;
+                       clock-names = "bus", "sss";
+               };
+
+               watchdog_cl0: watchdog@10060000 {
+                       compatible = "google,gs101-wdt";
+                       reg = <0x10060000 0x100>;
+                       interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER0_PCLK>,
+                                <&ext_24_5m>;
+                       clock-names = "watchdog", "watchdog_src";
+                       samsung,syscon-phandle = <&pmu_system_controller>;
+                       samsung,cluster-index = <0>;
+                       status = "disabled";
+               };
+
+               watchdog_cl1: watchdog@10070000 {
+                       compatible = "google,gs101-wdt";
+                       reg = <0x10070000 0x100>;
+                       interrupts = <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER1_PCLK>,
+                                <&ext_24_5m>;
+                       clock-names = "watchdog", "watchdog_src";
+                       samsung,syscon-phandle = <&pmu_system_controller>;
+                       samsung,cluster-index = <1>;
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@10400000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <4>;
+                       interrupt-controller;
+                       reg = <0x10400000 0x10000>, /* GICD */
+                             <0x10440000 0x100000>;/* GICR * 8 */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       ppi-partitions {
+                               ppi_cluster0: interrupt-partition-0 {
+                                       affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
+                               };
+
+                               ppi_cluster1: interrupt-partition-1 {
+                                       affinity = <&cpu4 &cpu5>;
+                               };
+
+                               ppi_cluster2: interrupt-partition-2 {
+                                       affinity = <&cpu6 &cpu7>;
+                               };
+                       };
+               };
+
+               sysreg_peric0: syscon@10820000 {
+                       compatible = "google,gs101-peric0-sysreg", "syscon";
+                       reg = <0x10820000 0x10000>;
+               };
+
+               pinctrl_peric0: pinctrl@10840000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x10840000 0x00001000>;
+                       interrupts = <GIC_SPI 625 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
+               usi_uart: usi@10a000c0 {
+                       compatible = "google,gs101-usi",
+                                    "samsung,exynos850-usi";
+                       reg = <0x10a000c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&dummy_clk>, <&dummy_clk>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1020>;
+                       samsung,mode = <USI_V2_UART>;
+                       status = "disabled";
+
+                       serial_0: serial@10a00000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10a00000 0xc0>;
+                               reg-io-width = <4>;
+                               interrupts = <GIC_SPI 634
+                                             IRQ_TYPE_LEVEL_HIGH 0>;
+                               clocks = <&dummy_clk 0>, <&dummy_clk 0>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               samsung,uart-fifosize = <256>;
+                               status = "disabled";
+                       };
+               };
+
+               sysreg_peric1: syscon@10c20000 {
+                       compatible = "google,gs101-peric1-sysreg", "syscon";
+                       reg = <0x10c20000 0x10000>;
+               };
+
+               pinctrl_peric1: pinctrl@10c40000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x10c40000 0x00001000>;
+                       interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
+               pinctrl_hsi1: pinctrl@11840000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x11840000 0x00001000>;
+                       interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
+               pinctrl_hsi2: pinctrl@14440000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x14440000 0x00001000>;
+                       interrupts = <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
+               cmu_apm: clock-controller@17400000 {
+                       compatible = "google,gs101-cmu-apm";
+                       reg = <0x17400000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&ext_24_5m>;
+                       clock-names = "oscclk";
+               };
+
+               sysreg_apm: syscon@174204e0 {
+                       compatible = "google,gs101-apm-sysreg", "syscon";
+                       reg = <0x174204e0 0x1000>;
+               };
+
+               pmu_system_controller: system-controller@17460000 {
+                       compatible = "google,gs101-pmu", "syscon";
+                       reg = <0x17460000 0x10000>;
+               };
+
+               pinctrl_gpio_alive: pinctrl@174d0000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x174d0000 0x00001000>;
+
+                       wakeup-interrupt-controller {
+                               compatible = "google,gs101-wakeup-eint",
+                                            "samsung,exynos850-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
+                       };
+               };
+
+               pinctrl_far_alive: pinctrl@174e0000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x174e0000 0x00001000>;
+
+                       wakeup-interrupt-controller {
+                               compatible = "google,gs101-wakeup-eint",
+                                            "samsung,exynos850-wakeup-eint",
+                                            "samsung,exynos7-wakeup-eint";
+                       };
+               };
+
+               pinctrl_gsactrl: pinctrl@17940000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x17940000 0x00001000>;
+               };
+
+               pinctrl_gsacore: pinctrl@17a80000 {
+                       compatible = "google,gs101-pinctrl";
+                       reg = <0x17a80000 0x00001000>;
+               };
+
+               cmu_top: clock-controller@1e080000 {
+                       compatible = "google,gs101-cmu-top";
+                       reg = <0x1e080000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&ext_24_5m>;
+                       clock-names = "oscclk";
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts =
+                  <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                  <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                  <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                  <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>;
+       };
+};
+
+#include "gs101-pinctrl.dtsi"
index a863022529ac5d997fccf008ff1b0c43a72aa4fa..1e3fe3897b52cedb83656c88e4a07aa45aa89390 100644 (file)
                        reg = <0x0 0x1f00000 0x0 0x10000>;
                        interrupts = <0 33 0x4>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x60062>;
-                       fsl,tmu-calibration = <0x00000000 0x00000025
-                                              0x00000001 0x0000002c
-                                              0x00000002 0x00000032
-                                              0x00000003 0x00000039
-                                              0x00000004 0x0000003f
-                                              0x00000005 0x00000046
-                                              0x00000006 0x0000004c
-                                              0x00000007 0x00000053
-                                              0x00000008 0x00000059
-                                              0x00000009 0x0000005f
-                                              0x0000000a 0x00000066
-                                              0x0000000b 0x0000006c
-
-                                              0x00010000 0x00000026
-                                              0x00010001 0x0000002d
-                                              0x00010002 0x00000035
-                                              0x00010003 0x0000003d
-                                              0x00010004 0x00000045
-                                              0x00010005 0x0000004d
-                                              0x00010006 0x00000055
-                                              0x00010007 0x0000005d
-                                              0x00010008 0x00000065
-                                              0x00010009 0x0000006d
-
-                                              0x00020000 0x00000026
-                                              0x00020001 0x00000030
-                                              0x00020002 0x0000003a
-                                              0x00020003 0x00000044
-                                              0x00020004 0x0000004e
-                                              0x00020005 0x00000059
-                                              0x00020006 0x00000063
-
-                                              0x00030000 0x00000014
-                                              0x00030001 0x00000021
-                                              0x00030002 0x0000002e
-                                              0x00030003 0x0000003a
-                                              0x00030004 0x00000047
-                                              0x00030005 0x00000053
-                                              0x00030006 0x00000060>;
-                       big-endian;
+                       fsl,tmu-calibration =
+                                       <0x00000000 0x00000025>,
+                                       <0x00000001 0x0000002c>,
+                                       <0x00000002 0x00000032>,
+                                       <0x00000003 0x00000039>,
+                                       <0x00000004 0x0000003f>,
+                                       <0x00000005 0x00000046>,
+                                       <0x00000006 0x0000004c>,
+                                       <0x00000007 0x00000053>,
+                                       <0x00000008 0x00000059>,
+                                       <0x00000009 0x0000005f>,
+                                       <0x0000000a 0x00000066>,
+                                       <0x0000000b 0x0000006c>,
+
+                                       <0x00010000 0x00000026>,
+                                       <0x00010001 0x0000002d>,
+                                       <0x00010002 0x00000035>,
+                                       <0x00010003 0x0000003d>,
+                                       <0x00010004 0x00000045>,
+                                       <0x00010005 0x0000004d>,
+                                       <0x00010006 0x00000055>,
+                                       <0x00010007 0x0000005d>,
+                                       <0x00010008 0x00000065>,
+                                       <0x00010009 0x0000006d>,
+
+                                       <0x00020000 0x00000026>,
+                                       <0x00020001 0x00000030>,
+                                       <0x00020002 0x0000003a>,
+                                       <0x00020003 0x00000044>,
+                                       <0x00020004 0x0000004e>,
+                                       <0x00020005 0x00000059>,
+                                       <0x00020006 0x00000063>,
+
+                                       <0x00030000 0x00000014>,
+                                       <0x00030001 0x00000021>,
+                                       <0x00030002 0x0000002e>,
+                                       <0x00030003 0x0000003a>,
+                                       <0x00030004 0x00000047>,
+                                       <0x00030005 0x00000053>,
+                                       <0x00030006 0x00000060>;
                        #thermal-sensor-cells = <1>;
                };
 
index eefe3577d94e0462969a5716b76cf4a4aec1fb6e..ae534c23b970a2f58558bee9e1ec0940579adf02 100644 (file)
                        reg = <0x0 0x1f80000 0x0 0x10000>;
                        interrupts = <0 23 0x4>;
                        fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
-                       fsl,tmu-calibration = <0x00000000 0x00000024
-                                              0x00000001 0x0000002b
-                                              0x00000002 0x00000031
-                                              0x00000003 0x00000038
-                                              0x00000004 0x0000003f
-                                              0x00000005 0x00000045
-                                              0x00000006 0x0000004c
-                                              0x00000007 0x00000053
-                                              0x00000008 0x00000059
-                                              0x00000009 0x00000060
-                                              0x0000000a 0x00000066
-                                              0x0000000b 0x0000006d
-
-                                              0x00010000 0x0000001c
-                                              0x00010001 0x00000024
-                                              0x00010002 0x0000002c
-                                              0x00010003 0x00000035
-                                              0x00010004 0x0000003d
-                                              0x00010005 0x00000045
-                                              0x00010006 0x0000004d
-                                              0x00010007 0x00000055
-                                              0x00010008 0x0000005e
-                                              0x00010009 0x00000066
-                                              0x0001000a 0x0000006e
-
-                                              0x00020000 0x00000018
-                                              0x00020001 0x00000022
-                                              0x00020002 0x0000002d
-                                              0x00020003 0x00000038
-                                              0x00020004 0x00000043
-                                              0x00020005 0x0000004d
-                                              0x00020006 0x00000058
-                                              0x00020007 0x00000063
-                                              0x00020008 0x0000006e
-
-                                              0x00030000 0x00000010
-                                              0x00030001 0x0000001c
-                                              0x00030002 0x00000029
-                                              0x00030003 0x00000036
-                                              0x00030004 0x00000042
-                                              0x00030005 0x0000004f
-                                              0x00030006 0x0000005b
-                                              0x00030007 0x00000068>;
+                       fsl,tmu-calibration =
+                                       <0x00000000 0x00000024>,
+                                       <0x00000001 0x0000002b>,
+                                       <0x00000002 0x00000031>,
+                                       <0x00000003 0x00000038>,
+                                       <0x00000004 0x0000003f>,
+                                       <0x00000005 0x00000045>,
+                                       <0x00000006 0x0000004c>,
+                                       <0x00000007 0x00000053>,
+                                       <0x00000008 0x00000059>,
+                                       <0x00000009 0x00000060>,
+                                       <0x0000000a 0x00000066>,
+                                       <0x0000000b 0x0000006d>,
+
+                                       <0x00010000 0x0000001c>,
+                                       <0x00010001 0x00000024>,
+                                       <0x00010002 0x0000002c>,
+                                       <0x00010003 0x00000035>,
+                                       <0x00010004 0x0000003d>,
+                                       <0x00010005 0x00000045>,
+                                       <0x00010006 0x0000004d>,
+                                       <0x00010007 0x00000055>,
+                                       <0x00010008 0x0000005e>,
+                                       <0x00010009 0x00000066>,
+                                       <0x0001000a 0x0000006e>,
+
+                                       <0x00020000 0x00000018>,
+                                       <0x00020001 0x00000022>,
+                                       <0x00020002 0x0000002d>,
+                                       <0x00020003 0x00000038>,
+                                       <0x00020004 0x00000043>,
+                                       <0x00020005 0x0000004d>,
+                                       <0x00020006 0x00000058>,
+                                       <0x00020007 0x00000063>,
+                                       <0x00020008 0x0000006e>,
+
+                                       <0x00030000 0x00000010>,
+                                       <0x00030001 0x0000001c>,
+                                       <0x00030002 0x00000029>,
+                                       <0x00030003 0x00000036>,
+                                       <0x00030004 0x00000042>,
+                                       <0x00030005 0x0000004f>,
+                                       <0x00030006 0x0000005b>,
+                                       <0x00030007 0x00000068>;
                        little-endian;
                        #thermal-sensor-cells = <1>;
                };
index 229bb4bebe4267e8db52f62373c25c5589c43e02..d333b773bc455e5f2a5e370398fd458155965e23 100644 (file)
                        reg = <0x0 0x1f00000 0x0 0x10000>;
                        interrupts = <0 33 0x4>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
-                       fsl,tmu-calibration = <0x00000000 0x00000023
-                                              0x00000001 0x0000002a
-                                              0x00000002 0x00000031
-                                              0x00000003 0x00000037
-                                              0x00000004 0x0000003e
-                                              0x00000005 0x00000044
-                                              0x00000006 0x0000004b
-                                              0x00000007 0x00000051
-                                              0x00000008 0x00000058
-                                              0x00000009 0x0000005e
-                                              0x0000000a 0x00000065
-                                              0x0000000b 0x0000006b
-
-                                              0x00010000 0x00000023
-                                              0x00010001 0x0000002b
-                                              0x00010002 0x00000033
-                                              0x00010003 0x0000003b
-                                              0x00010004 0x00000043
-                                              0x00010005 0x0000004b
-                                              0x00010006 0x00000054
-                                              0x00010007 0x0000005c
-                                              0x00010008 0x00000064
-                                              0x00010009 0x0000006c
-
-                                              0x00020000 0x00000021
-                                              0x00020001 0x0000002c
-                                              0x00020002 0x00000036
-                                              0x00020003 0x00000040
-                                              0x00020004 0x0000004b
-                                              0x00020005 0x00000055
-                                              0x00020006 0x0000005f
-
-                                              0x00030000 0x00000013
-                                              0x00030001 0x0000001d
-                                              0x00030002 0x00000028
-                                              0x00030003 0x00000032
-                                              0x00030004 0x0000003d
-                                              0x00030005 0x00000047
-                                              0x00030006 0x00000052
-                                              0x00030007 0x0000005c>;
+                       fsl,tmu-calibration =
+                                       <0x00000000 0x00000023>,
+                                       <0x00000001 0x0000002a>,
+                                       <0x00000002 0x00000031>,
+                                       <0x00000003 0x00000037>,
+                                       <0x00000004 0x0000003e>,
+                                       <0x00000005 0x00000044>,
+                                       <0x00000006 0x0000004b>,
+                                       <0x00000007 0x00000051>,
+                                       <0x00000008 0x00000058>,
+                                       <0x00000009 0x0000005e>,
+                                       <0x0000000a 0x00000065>,
+                                       <0x0000000b 0x0000006b>,
+
+                                       <0x00010000 0x00000023>,
+                                       <0x00010001 0x0000002b>,
+                                       <0x00010002 0x00000033>,
+                                       <0x00010003 0x0000003b>,
+                                       <0x00010004 0x00000043>,
+                                       <0x00010005 0x0000004b>,
+                                       <0x00010006 0x00000054>,
+                                       <0x00010007 0x0000005c>,
+                                       <0x00010008 0x00000064>,
+                                       <0x00010009 0x0000006c>,
+
+                                       <0x00020000 0x00000021>,
+                                       <0x00020001 0x0000002c>,
+                                       <0x00020002 0x00000036>,
+                                       <0x00020003 0x00000040>,
+                                       <0x00020004 0x0000004b>,
+                                       <0x00020005 0x00000055>,
+                                       <0x00020006 0x0000005f>,
+
+                                       <0x00030000 0x00000013>,
+                                       <0x00030001 0x0000001d>,
+                                       <0x00030002 0x00000028>,
+                                       <0x00030003 0x00000032>,
+                                       <0x00030004 0x0000003d>,
+                                       <0x00030005 0x00000047>,
+                                       <0x00030006 0x00000052>,
+                                       <0x00030007 0x0000005c>;
                        #thermal-sensor-cells = <1>;
                };
 
index 50f68ca5a9af710eba8044f1f164142791cab0ec..1515cec231470c03fba6271d6ffb2080fa863316 100644 (file)
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
                        fsl,tmu-calibration =
                                /* Calibration data group 1 */
-                               <0x00000000 0x00000023
-                               0x00000001 0x00000029
-                               0x00000002 0x0000002f
-                               0x00000003 0x00000036
-                               0x00000004 0x0000003c
-                               0x00000005 0x00000042
-                               0x00000006 0x00000049
-                               0x00000007 0x0000004f
-                               0x00000008 0x00000055
-                               0x00000009 0x0000005c
-                               0x0000000a 0x00000062
-                               0x0000000b 0x00000068
+                               <0x00000000 0x00000023>,
+                               <0x00000001 0x00000029>,
+                               <0x00000002 0x0000002f>,
+                               <0x00000003 0x00000036>,
+                               <0x00000004 0x0000003c>,
+                               <0x00000005 0x00000042>,
+                               <0x00000006 0x00000049>,
+                               <0x00000007 0x0000004f>,
+                               <0x00000008 0x00000055>,
+                               <0x00000009 0x0000005c>,
+                               <0x0000000a 0x00000062>,
+                               <0x0000000b 0x00000068>,
                                /* Calibration data group 2 */
-                               0x00010000 0x00000022
-                               0x00010001 0x0000002a
-                               0x00010002 0x00000032
-                               0x00010003 0x0000003a
-                               0x00010004 0x00000042
-                               0x00010005 0x0000004a
-                               0x00010006 0x00000052
-                               0x00010007 0x0000005a
-                               0x00010008 0x00000062
-                               0x00010009 0x0000006a
+                               <0x00010000 0x00000022>,
+                               <0x00010001 0x0000002a>,
+                               <0x00010002 0x00000032>,
+                               <0x00010003 0x0000003a>,
+                               <0x00010004 0x00000042>,
+                               <0x00010005 0x0000004a>,
+                               <0x00010006 0x00000052>,
+                               <0x00010007 0x0000005a>,
+                               <0x00010008 0x00000062>,
+                               <0x00010009 0x0000006a>,
                                /* Calibration data group 3 */
-                               0x00020000 0x00000021
-                               0x00020001 0x0000002b
-                               0x00020002 0x00000035
-                               0x00020003 0x0000003e
-                               0x00020004 0x00000048
-                               0x00020005 0x00000052
-                               0x00020006 0x0000005c
+                               <0x00020000 0x00000021>,
+                               <0x00020001 0x0000002b>,
+                               <0x00020002 0x00000035>,
+                               <0x00020003 0x0000003e>,
+                               <0x00020004 0x00000048>,
+                               <0x00020005 0x00000052>,
+                               <0x00020006 0x0000005c>,
                                /* Calibration data group 4 */
-                               0x00030000 0x00000011
-                               0x00030001 0x0000001a
-                               0x00030002 0x00000024
-                               0x00030003 0x0000002e
-                               0x00030004 0x00000038
-                               0x00030005 0x00000042
-                               0x00030006 0x0000004c
-                               0x00030007 0x00000056>;
+                               <0x00030000 0x00000011>,
+                               <0x00030001 0x0000001a>,
+                               <0x00030002 0x00000024>,
+                               <0x00030003 0x0000002e>,
+                               <0x00030004 0x00000038>,
+                               <0x00030005 0x00000042>,
+                               <0x00030006 0x0000004c>,
+                               <0x00030007 0x00000056>;
                        big-endian;
                        #thermal-sensor-cells = <1>;
                };
index 8f6090a9aef2b3d9c0a0ef758f14813b7b007d6f..8616d5e0c38845aafd59c067e490f0a69b3c95d7 100644 (file)
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
                        fsl,tmu-calibration =
                                /* Calibration data group 1 */
-                               <0x00000000 0x00000023
-                               0x00000001 0x0000002a
-                               0x00000002 0x00000030
-                               0x00000003 0x00000037
-                               0x00000004 0x0000003d
-                               0x00000005 0x00000044
-                               0x00000006 0x0000004a
-                               0x00000007 0x00000051
-                               0x00000008 0x00000057
-                               0x00000009 0x0000005e
-                               0x0000000a 0x00000064
-                               0x0000000b 0x0000006b
+                               <0x00000000 0x00000023>,
+                               <0x00000001 0x0000002a>,
+                               <0x00000002 0x00000030>,
+                               <0x00000003 0x00000037>,
+                               <0x00000004 0x0000003d>,
+                               <0x00000005 0x00000044>,
+                               <0x00000006 0x0000004a>,
+                               <0x00000007 0x00000051>,
+                               <0x00000008 0x00000057>,
+                               <0x00000009 0x0000005e>,
+                               <0x0000000a 0x00000064>,
+                               <0x0000000b 0x0000006b>,
                                /* Calibration data group 2 */
-                               0x00010000 0x00000022
-                               0x00010001 0x0000002a
-                               0x00010002 0x00000032
-                               0x00010003 0x0000003a
-                               0x00010004 0x00000042
-                               0x00010005 0x0000004a
-                               0x00010006 0x00000052
-                               0x00010007 0x0000005a
-                               0x00010008 0x00000062
-                               0x00010009 0x0000006a
+                               <0x00010000 0x00000022>,
+                               <0x00010001 0x0000002a>,
+                               <0x00010002 0x00000032>,
+                               <0x00010003 0x0000003a>,
+                               <0x00010004 0x00000042>,
+                               <0x00010005 0x0000004a>,
+                               <0x00010006 0x00000052>,
+                               <0x00010007 0x0000005a>,
+                               <0x00010008 0x00000062>,
+                               <0x00010009 0x0000006a>,
                                /* Calibration data group 3 */
-                               0x00020000 0x00000021
-                               0x00020001 0x0000002b
-                               0x00020002 0x00000035
-                               0x00020003 0x00000040
-                               0x00020004 0x0000004a
-                               0x00020005 0x00000054
-                               0x00020006 0x0000005e
+                               <0x00020000 0x00000021>,
+                               <0x00020001 0x0000002b>,
+                               <0x00020002 0x00000035>,
+                               <0x00020003 0x00000040>,
+                               <0x00020004 0x0000004a>,
+                               <0x00020005 0x00000054>,
+                               <0x00020006 0x0000005e>,
                                /* Calibration data group 4 */
-                               0x00030000 0x00000010
-                               0x00030001 0x0000001c
-                               0x00030002 0x00000027
-                               0x00030003 0x00000032
-                               0x00030004 0x0000003e
-                               0x00030005 0x00000049
-                               0x00030006 0x00000054
-                               0x00030007 0x00000060>;
+                               <0x00030000 0x00000010>,
+                               <0x00030001 0x0000001c>,
+                               <0x00030002 0x00000027>,
+                               <0x00030003 0x00000032>,
+                               <0x00030004 0x0000003e>,
+                               <0x00030005 0x00000049>,
+                               <0x00030006 0x00000054>,
+                               <0x00030007 0x00000060>;
                        little-endian;
                        #thermal-sensor-cells = <1>;
                };
index 717288bbdb8b633f5ee286acdd2fc34fcabe3d50..0b72928359068057e4faddaab4628a9e6b5f8efd 100644 (file)
                        reg = <0x0 0x1f80000 0x0 0x10000>;
                        interrupts = <0 23 0x4>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>;
-                       fsl,tmu-calibration = <0x00000000 0x00000026
-                                              0x00000001 0x0000002d
-                                              0x00000002 0x00000032
-                                              0x00000003 0x00000039
-                                              0x00000004 0x0000003f
-                                              0x00000005 0x00000046
-                                              0x00000006 0x0000004d
-                                              0x00000007 0x00000054
-                                              0x00000008 0x0000005a
-                                              0x00000009 0x00000061
-                                              0x0000000a 0x0000006a
-                                              0x0000000b 0x00000071
-
-                                              0x00010000 0x00000025
-                                              0x00010001 0x0000002c
-                                              0x00010002 0x00000035
-                                              0x00010003 0x0000003d
-                                              0x00010004 0x00000045
-                                              0x00010005 0x0000004e
-                                              0x00010006 0x00000057
-                                              0x00010007 0x00000061
-                                              0x00010008 0x0000006b
-                                              0x00010009 0x00000076
-
-                                              0x00020000 0x00000029
-                                              0x00020001 0x00000033
-                                              0x00020002 0x0000003d
-                                              0x00020003 0x00000049
-                                              0x00020004 0x00000056
-                                              0x00020005 0x00000061
-                                              0x00020006 0x0000006d
-
-                                              0x00030000 0x00000021
-                                              0x00030001 0x0000002a
-                                              0x00030002 0x0000003c
-                                              0x00030003 0x0000004e>;
+                       fsl,tmu-calibration =
+                                       <0x00000000 0x00000026>,
+                                       <0x00000001 0x0000002d>,
+                                       <0x00000002 0x00000032>,
+                                       <0x00000003 0x00000039>,
+                                       <0x00000004 0x0000003f>,
+                                       <0x00000005 0x00000046>,
+                                       <0x00000006 0x0000004d>,
+                                       <0x00000007 0x00000054>,
+                                       <0x00000008 0x0000005a>,
+                                       <0x00000009 0x00000061>,
+                                       <0x0000000a 0x0000006a>,
+                                       <0x0000000b 0x00000071>,
+
+                                       <0x00010000 0x00000025>,
+                                       <0x00010001 0x0000002c>,
+                                       <0x00010002 0x00000035>,
+                                       <0x00010003 0x0000003d>,
+                                       <0x00010004 0x00000045>,
+                                       <0x00010005 0x0000004e>,
+                                       <0x00010006 0x00000057>,
+                                       <0x00010007 0x00000061>,
+                                       <0x00010008 0x0000006b>,
+                                       <0x00010009 0x00000076>,
+
+                                       <0x00020000 0x00000029>,
+                                       <0x00020001 0x00000033>,
+                                       <0x00020002 0x0000003d>,
+                                       <0x00020003 0x00000049>,
+                                       <0x00020004 0x00000056>,
+                                       <0x00020005 0x00000061>,
+                                       <0x00020006 0x0000006d>,
+
+                                       <0x00030000 0x00000021>,
+                                       <0x00030001 0x0000002a>,
+                                       <0x00030002 0x0000003c>,
+                                       <0x00030003 0x0000004e>;
                        little-endian;
                        #thermal-sensor-cells = <1>;
                };
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts
new file mode 100644 (file)
index 0000000..da0f58e
--- /dev/null
@@ -0,0 +1,338 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+
+#include "fsl-lx2160a-tqmlx2160a.dtsi"
+
+/ {
+       model = "TQ Systems GmbH MBLX2160A Starterkit";
+       compatible = "tq,lx2160a-tqmlx2160a-mblx2160a", "tq,lx2160a-tqmlx2160a",
+                    "fsl,lx2160a";
+
+       aliases {
+               mmc0 = &esdhc0;
+               mmc1 = &esdhc1;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+       };
+
+       chosen {
+               stdout-path = &uart0;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-user1 {
+                       label = "button:user1";
+                       gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_F1>;
+               };
+
+               button-user2 {
+                       label = "button:user2";
+                       gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_F2>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-user1 {
+                       gpios = <&gpioex1 15 GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       function-enumerator = <0>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-user2 {
+                       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       function-enumerator = <1>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       sfp_xfi1: sfp-xfi1 {
+               compatible = "sff,sfp";
+               i2c-bus = <&xfi1_i2c>;
+               mod-def0-gpios = <&gpioex2 2 GPIO_ACTIVE_LOW>;
+               los-gpios = <&gpioex2 3 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpios = <&gpioex2 0 GPIO_ACTIVE_HIGH>;
+               tx-disable-gpios = <&gpioex2 1 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       sfp_xfi2: sfp-xfi2 {
+               compatible = "sff,sfp";
+               i2c-bus = <&xfi2_i2c>;
+               mod-def0-gpios = <&gpioex2 6 GPIO_ACTIVE_LOW>;
+               los-gpios = <&gpioex2 7 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpios = <&gpioex2 4 GPIO_ACTIVE_HIGH>;
+               tx-disable-gpios = <&gpioex2 5 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+};
+
+&can0 {
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&dpmac17 {
+       phy-handle = <&dp83867_2_3>;
+       phy-connection-type = "rgmii-id";
+};
+
+&dpmac18 {
+       phy-handle = <&dp83867_2_4>;
+       phy-connection-type = "rgmii-id";
+};
+
+&emdio1 {
+       status = "okay";
+
+       dp83867_1_1: ethernet-phy@1 {
+               reg = <1>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_1_2: ethernet-phy@2 {
+               reg = <2>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_1_3: ethernet-phy@3 {
+               reg = <3>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_1_4: ethernet-phy@4 {
+               reg = <4>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_1_5: ethernet-phy@5 {
+               reg = <5>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_1_6: ethernet-phy@6 {
+               reg = <6>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+};
+
+&emdio2 {
+       status = "okay";
+
+       dp83867_2_1: ethernet-phy@1 {
+               reg = <1>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_2_2: ethernet-phy@2 {
+               reg = <2>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_2_3: ethernet-phy@3 {
+               reg = <3>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       dp83867_2_4: ethernet-phy@4 {
+               reg = <4>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+};
+
+&esdhc0 {
+       sd-uhs-sdr104;
+       sd-uhs-sdr50;
+       sd-uhs-sdr25;
+       sd-uhs-sdr12;
+       no-mmc;
+       no-sdio;
+       wp-gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&i2c0 {
+       gpioex3: gpio@20 {
+               compatible = "nxp,pca9555";
+               reg = <0x20>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               vcc-supply = <&reg_vcc3v3>;
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       mux@70 {
+               compatible = "nxp,pca9544";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               vdd-supply = <&reg_vcc3v3>;
+
+               i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       gpioex0: gpio@20 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x20>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               vcc-supply = <&reg_vcc3v3>;
+                       };
+
+                       gpioex1: gpio@21 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x21>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               vcc-supply = <&reg_vcc3v3>;
+                       };
+
+                       gpioex2: gpio@22 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x22>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               vcc-supply = <&reg_vcc3v3>;
+                       };
+               };
+
+               i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       mux@70 {
+               compatible = "nxp,pca9544";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               vdd-supply = <&reg_vcc3v3>;
+
+               i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               xfi1_i2c: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               xfi2_i2c: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&pcs_mdio17 {
+       status = "okay";
+};
+
+&pcs_mdio18 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usb0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub_2_0: hub@1 {
+               compatible = "usb451,8142";
+               reg = <1>;
+               peer-hub = <&hub_3_0>;
+               reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_vcc3v3>;
+       };
+
+       hub_3_0: hub@2 {
+               compatible = "usb451,8140";
+               reg = <2>;
+               peer-hub = <&hub_2_0>;
+               reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_vcc3v3>;
+       };
+};
+
+&usb1 {
+       dr_mode = "otg";
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_12_x_x.dtso b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_12_x_x.dtso
new file mode 100644 (file)
index 0000000..8284a56
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+/plugin/;
+
+&dpmac9 {
+       phy-handle = <&dp83867_2_1>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&dpmac10 {
+       phy-handle = <&dp83867_2_2>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&pcs_mdio9 {
+       status = "okay";
+};
+
+&pcs_mdio10 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_14_x_x.dtso b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_14_x_x.dtso
new file mode 100644 (file)
index 0000000..636b17a
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+/plugin/;
+
+&dpmac1 {
+       managed = "in-band-status";
+};
+
+&pcs_mdio1 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_11_x.dtso b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_11_x.dtso
new file mode 100644 (file)
index 0000000..6d0c808
--- /dev/null
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+/plugin/;
+
+&dpmac12 {
+       phy-handle = <&dp83867_1_1>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&dpmac13 {
+       phy-handle = <&dp83867_1_5>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&dpmac14 {
+       phy-handle = <&dp83867_1_6>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&dpmac16 {
+       phy-handle = <&dp83867_1_4>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&pcs_mdio12 {
+       status = "okay";
+};
+
+&pcs_mdio13 {
+       status = "okay";
+};
+
+&pcs_mdio14 {
+       status = "okay";
+};
+
+&pcs_mdio16 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_7_x.dtso b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_7_x.dtso
new file mode 100644 (file)
index 0000000..db88a86
--- /dev/null
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+/plugin/;
+
+&dpmac12 {
+       phy-handle = <&dp83867_1_1>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&dpmac13 {
+       sfp = <&sfp_xfi1>;
+       managed = "in-band-status";
+};
+
+&dpmac14 {
+       sfp = <&sfp_xfi2>;
+       managed = "in-band-status";
+};
+
+&dpmac16 {
+       phy-handle = <&dp83867_1_4>;
+       phy-connection-type = "sgmii";
+       managed = "in-band-status";
+};
+
+&pcs_mdio12 {
+       status = "okay";
+};
+
+&pcs_mdio13 {
+       status = "okay";
+};
+
+&pcs_mdio14 {
+       status = "okay";
+};
+
+&pcs_mdio16 {
+       status = "okay";
+};
+
+&sfp_xfi1 {
+       status = "okay";
+};
+
+&sfp_xfi2 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_8_x.dtso b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a_x_8_x.dtso
new file mode 100644 (file)
index 0000000..f6dfa76
--- /dev/null
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+/dts-v1/;
+/plugin/;
+
+&dpmac13 {
+       sfp = <&sfp_xfi1>;
+       managed = "in-band-status";
+};
+
+&dpmac14 {
+       sfp = <&sfp_xfi2>;
+       managed = "in-band-status";
+};
+
+&pcs_mdio13 {
+       status = "okay";
+};
+
+&pcs_mdio14 {
+       status = "okay";
+};
+
+&sata0 {
+       status = "okay";
+};
+
+&sata1 {
+       status = "okay";
+};
+
+&sata2 {
+       status = "okay";
+};
+
+&sfp_xfi1 {
+       status = "okay";
+};
+
+&sfp_xfi2 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/fsl-lx2160a-tqmlx2160a.dtsi b/src/arm64/freescale/fsl-lx2160a-tqmlx2160a.dtsi
new file mode 100644 (file)
index 0000000..89a4765
--- /dev/null
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Gregor Herburger
+ */
+
+#include "fsl-lx2160a.dtsi"
+
+/ {
+       reg_vcc3v3: regulator-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+};
+
+
+&emdio1 {
+       status = "okay";
+};
+
+&emdio2 {
+       status = "okay";
+};
+
+&esdhc1 {
+       bus-width = <8>;
+       no-sd;
+       no-sdio;
+       non-removable;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&fspi {
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <10000000>;
+               spi-rx-bus-width = <1>;
+               spi-tx-bus-width = <1>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+       };
+
+       flash1: flash@1 {
+               compatible = "jedec,spi-nor";
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <10000000>;
+               spi-rx-bus-width = <1>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&i2c0 {
+       scl-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       sensor0: temperature-sensor@1f {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1f>;
+       };
+
+       eeprom1: eeprom@57 {
+               compatible = "atmel,24c02";
+               reg = <0x57>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&reg_vcc3v3>;
+       };
+
+       rtc: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <12500>;
+       };
+
+       eeprom2: eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+               pagesize = <32>;
+               vcc-supply = <&reg_vcc3v3>;
+       };
+};
index f176ca2e244e7530b13835e5d86fb61ad03a80ef..6640b49670ae5162841536fc0708117616f3218f 100644 (file)
                        fsl,tmu-range = <0x800000e6 0x8001017d>;
                        fsl,tmu-calibration =
                                /* Calibration data group 1 */
-                               <0x00000000 0x00000035
+                               <0x00000000 0x00000035>,
                                /* Calibration data group 2 */
-                               0x00000001 0x00000154>;
+                               <0x00000001 0x00000154>;
                        little-endian;
                        #thermal-sensor-cells = <1>;
                };
index 72136c436a70c31406b8e744bd90e2fdc95e3518..f6654fdcb1478071f1d4209d5d16d07af54f1ad7 100644 (file)
@@ -68,6 +68,7 @@
                gpio = <&lsio_gpio5 22 GPIO_ACTIVE_HIGH>;
                enable-active-high;
                regulator-name = "can1_supply";
+               startup-delay-us = <1000>;
        };
 
        reg_can2_supply: regulator-can2-supply {
@@ -77,6 +78,7 @@
                gpio = <&lsio_gpio2 8 GPIO_ACTIVE_HIGH>;
                enable-active-high;
                regulator-name = "can2_supply";
+               startup-delay-us = <1000>;
        };
 
        reg_usb_host_vbus: regulator-usb-host-vbus {
index 9d75ce4675691e1f1b1000042bae460fb00c4248..f057c6b21b301297d6d49ebb0b5a70ca38fc5c37 100644 (file)
@@ -24,7 +24,6 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-edma";
                reg = <0x591f0000 0x190000>;
                #dma-cells = <3>;
-               shared-interrupt;
                dma-channels = <24>;
                dma-channel-mask = <0x5c0c00>;
                interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* 0 asrc 0 */
@@ -127,7 +126,6 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-edma";
                reg = <0x599f0000 0xc0000>;
                #dma-cells = <3>;
-               shared-interrupt;
                dma-channels = <11>;
                dma-channel-mask = <0xc0>;
                interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* 0 asrc 1 */
index a414df645351113d30302fdbd3b605f02ff7ce2d..6d13e4fafb761cc0b14175a5993346eff3b65c39 100644 (file)
                clock-frequency = <250000000>;
                clock-output-names = "conn_enet0_root_clk";
        };
+
+       clk_dummy: clock-dummy {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "clk_dummy";
+       };
 };
 
 &conn_subsys {
@@ -22,7 +29,7 @@
                interrupt-parent = <&gic>;
                interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "eth_wake_irq", "macirq";
+               interrupt-names = "macirq", "eth_wake_irq";
                clocks = <&eqos_lpcg IMX_LPCG_CLK_4>,
                         <&eqos_lpcg IMX_LPCG_CLK_6>,
                         <&eqos_lpcg IMX_LPCG_CLK_0>,
                rx-burst-size-dword = <0x10>;
                power-domains = <&pd IMX_SC_R_USB_1>;
                status = "disabled";
-
-               clk_dummy: clock-dummy {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <0>;
-                       clock-output-names = "clk_dummy";
-               };
        };
 
        usbmisc2: usbmisc@5b0e0200 {
index 550f513708d8543b7be641cb61ba92c10b14e57b..3569abb5bb9befd4d1504e3e2a352c64229533c0 100644 (file)
@@ -4,6 +4,6 @@
  */
 
 &ddr_pmu0 {
-       compatible = "fsl,imx8-ddr-pmu";
+       compatible = "fsl,imx8dxl-ddr-pmu", "fsl,imx8-ddr-pmu";
        interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
 };
index f264102bdb274883e7f40a664900ccbc0d21b2a7..62ed64663f49521a9c14927886018058e489c914 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright 2020 Compass Electronics Group, LLC
  */
 
+#include "imx8mm-overdrive.dtsi"
+
 / {
        aliases {
                rtc0 = &rtc;
index d897a852733531f3b05e8830f3d4d1026e819fe3..44c2cba41a1f04e4790aa16554c07c6a9bb49e05 100644 (file)
                compatible = "nxp,pca8574";
                reg = <0x3a>;
                gpio-controller;
-               #gpio-cells = <1>;
+               #gpio-cells = <2>;
        };
 };
 
index a882c86ec3132b88479a13720ee7cb92cca7aac1..b53104ed89199339b67535fc6b9741e0177a2a2d 100644 (file)
                interrupts = <11 8>;
                status = "okay";
 
-               port {
-                       typec1_dr_sw: endpoint {
-                               remote-endpoint = <&usb1_drd_sw>;
-                       };
-               };
-
                typec1_con: connector {
                        compatible = "usb-c-connector";
                        label = "USB-C";
                                     PDO_VAR(5000, 20000, 3000)>;
                        op-sink-microwatt = <15000000>;
                        self-powered;
+
+                       port {
+                               typec1_dr_sw: endpoint {
+                                       remote-endpoint = <&usb1_drd_sw>;
+                               };
+                       };
                };
        };
 };
index 0e8f0d7161ad0f4989c91149bbb29f20d000a45e..12fb79d20b29e21c1984a7077c61803875523c7e 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               i2c3@0 {
+               i2c@0 {
                        reg = <0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
diff --git a/src/arm64/freescale/imx8mm-overdrive.dtsi b/src/arm64/freescale/imx8mm-overdrive.dtsi
new file mode 100644 (file)
index 0000000..b31436b
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+&gpu_2d {
+       assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
+                         <&clk IMX8MM_GPU_PLL_OUT>;
+       assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+       assigned-clock-rates = <0>, <1000000000>;
+};
+
+&gpu_3d {
+       assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
+                         <&clk IMX8MM_GPU_PLL_OUT>;
+       assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+       assigned-clock-rates = <0>, <1000000000>;
+};
+
+&vpu_blk_ctrl {
+       assigned-clocks = <&clk IMX8MM_CLK_VPU_G1>,
+                         <&clk IMX8MM_CLK_VPU_G2>,
+                         <&clk IMX8MM_CLK_VPU_H1>,
+                         <&clk IMX8MM_VPU_PLL_OUT>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL3_OUT>,
+                                <&clk IMX8MM_VPU_PLL_OUT>,
+                                <&clk IMX8MM_SYS_PLL3_OUT>;
+       assigned-clock-rates = <750000000>,
+                              <700000000>,
+                              <750000000>,
+                              <700000000>;
+};
index 968f475b9a96c3c7334d670fd004ddcde08eed6f..27a902569e2a28434af3b6b15dcdb3a43f7a9606 100644 (file)
        };
 
        tpm: tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&gpio2>;
                pinctrl-names = "default";
index 156d793a0c97236e44b1609494460d0ebdf3cb07..ea6e8b85169f75c3dfefb45956976a1a713610de 100644 (file)
@@ -11,6 +11,7 @@
 / {
        model = "TQ-Systems GmbH i.MX8MM TQMa8MxML on MBa8Mx";
        compatible = "tq,imx8mm-tqma8mqml-mba8mx", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
+       chassis-type = "embedded";
 
        aliases {
                eeprom0 = &eeprom3;
index 3a0a10e835a277af56329182ff6cb9bf56815ea3..752caa38eb03bfd6831e61f857b517beb5bfe1a1 100644 (file)
 &ecspi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_spi2>;
-       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>,
+                  <&gpio1 10 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       tpm@1 {
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
+               reg = <0x1>;
+               spi-max-frequency = <36000000>;
+       };
 };
 
 &gpio1 {
 
        pcie@0,0 {
                reg = <0x0000 0 0 0 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
 
-               pcie@1,0 {
+               pcie@0,0 {
                        reg = <0x0000 0 0 0 0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
 
-                       pcie@2,3 {
+                       pcie@3,0 {
                                reg = <0x1800 0 0 0 0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
 
-                               eth1: pcie@5,0 {
+                               eth1: ethernet@0,0 {
                                        reg = <0x0000 0 0 0 0>;
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
 
                                        local-mac-address = [00 00 00 00 00 00];
                                };
                        MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI    0xd6
                        MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO    0xd6
                        MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13      0xd6
+                       MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10      0xd6
                >;
        };
 
index d79fe9f62b95593a14b95f1e36884ba04d4a8cec..2aa6c1090fc7d7b81f7774354286c13a5463c06b 100644 (file)
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
 
        pcie@0,0 {
                reg = <0x0000 0 0 0 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
 
-               pcie@1,0 {
+               pcie@0,0 {
                        reg = <0x0000 0 0 0 0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
 
-                       pcie@2,4 {
+                       pcie@4,0 {
                                reg = <0x2000 0 0 0 0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
 
-                               eth1: pcie@6,0 {
+                               eth1: ethernet@0,0 {
                                        reg = <0x0000 0 0 0 0>;
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
 
                                        local-mac-address = [00 00 00 00 00 00];
                                };
index 06a394a41d7c43687faee22fcd33cc030dc57ab9..c11260c26d0b43b67c19852119eda98e3364cb9a 100644 (file)
 
        pcie@0,0 {
                reg = <0x0000 0 0 0 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
 
-               eth1: pcie@1,0 {
+               eth1: ethernet@0,0 {
                        reg = <0x0000 0 0 0 0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
 
                        local-mac-address = [00 00 00 00 00 00];
                };
diff --git a/src/arm64/freescale/imx8mm-verdin-mallow.dtsi b/src/arm64/freescale/imx8mm-verdin-mallow.dtsi
new file mode 100644 (file)
index 0000000..4a0799d
--- /dev/null
@@ -0,0 +1,173 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ *
+ * Common dtsi for Verdin IMX8MM SoM on Mallow carrier board
+ *
+ * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-mini-nano
+ * https://www.toradex.com/products/carrier-board/mallow-carrier-board
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds>;
+
+               /* SODIMM 52 - USER_LED_1_RED */
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 54 - USER_LED_1_GREEN */
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 56 - USER_LED_2_RED */
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 58 - USER_LED_2_GREEN */
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+/* Verdin SPI_1 */
+&ecspi2 {
+       pinctrl-0 = <&pinctrl_ecspi2>, <&pinctrl_tpm_cs>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>, <&gpio3 2 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       tpm@1 {
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               reg = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tpm_irq>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               spi-max-frequency = <18500000>;
+       };
+};
+
+/* EEPROM on Mallow */
+&eeprom_carrier_board {
+       status = "okay";
+};
+
+/* Verdin ETH_1 */
+&fec1 {
+       status = "okay";
+};
+
+/* Temperature sensor on Mallow */
+&hwmon_temp {
+       compatible = "ti,tmp1075";
+       status = "okay";
+};
+
+/* Verdin I2C_2_DSI */
+&i2c2 {
+       status = "okay";
+};
+
+/* Verdin I2C_4_CSI */
+&i2c3 {
+       status = "okay";
+};
+
+/* Verdin I2C_1 */
+&i2c4 {
+       status = "okay";
+};
+
+/* Verdin PCIE_1 */
+&pcie0 {
+       status = "okay";
+};
+
+&pcie_phy {
+       status = "okay";
+};
+
+/* Verdin PWM_3_DSI */
+&pwm1 {
+       status = "okay";
+};
+
+/* Verdin PWM_1 */
+&pwm2 {
+       status = "okay";
+};
+
+/* Verdin PWM_2 */
+&pwm3 {
+       status = "okay";
+};
+
+/* Verdin UART_3 */
+&uart1 {
+       status = "okay";
+};
+
+/* Verdin UART_1 */
+&uart2 {
+       status = "okay";
+};
+
+/* Verdin UART_2 */
+&uart3 {
+       status = "okay";
+};
+
+/* Verdin USB_1 */
+&usbotg1 {
+       status = "okay";
+};
+
+/* Verdin USB_2 */
+&usbotg2 {
+       status = "okay";
+};
+
+/* Verdin SD_1 */
+&usdhc2 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_leds: ledsgrp {
+               fsl,pins =
+                       <MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0        0x106>, /* SODIMM 52 */
+                       <MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1      0x106>, /* SODIMM 54 */
+                       <MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6     0x106>, /* SODIMM 56 */
+                       <MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7     0x106>; /* SODIMM 58 */
+       };
+
+       pinctrl_tpm_cs: tpmcsgrp {
+               fsl,pins =
+                       <MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2      0x146>; /* SODIMM 64 */
+       };
+
+       pinctrl_tpm_irq: tpmirqgrp {
+               fsl,pins =
+                       <MX8MM_IOMUXC_NAND_DQS_GPIO3_IO14       0x141>; /* SODIMM 66 */
+       };
+};
diff --git a/src/arm64/freescale/imx8mm-verdin-nonwifi-mallow.dts b/src/arm64/freescale/imx8mm-verdin-nonwifi-mallow.dts
new file mode 100644 (file)
index 0000000..1b1999f
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mm-verdin.dtsi"
+#include "imx8mm-verdin-nonwifi.dtsi"
+#include "imx8mm-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Mini on Mallow";
+       compatible = "toradex,verdin-imx8mm-nonwifi-mallow",
+                    "toradex,verdin-imx8mm-nonwifi",
+                    "toradex,verdin-imx8mm",
+                    "fsl,imx8mm";
+};
diff --git a/src/arm64/freescale/imx8mm-verdin-wifi-mallow.dts b/src/arm64/freescale/imx8mm-verdin-wifi-mallow.dts
new file mode 100644 (file)
index 0000000..2916145
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mm-verdin.dtsi"
+#include "imx8mm-verdin-wifi.dtsi"
+#include "imx8mm-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Mini WB on Mallow";
+       compatible = "toradex,verdin-imx8mm-wifi-mallow",
+                    "toradex,verdin-imx8mm-wifi",
+                    "toradex,verdin-imx8mm",
+                    "fsl,imx8mm";
+};
index 738024baaa5789a1b867d5eca844f9d83111a4c5..8a1b42b94dce69d6d69a153b5298568bf7fbaf02 100644 (file)
                        clk: clock-controller@30380000 {
                                compatible = "fsl,imx8mm-ccm";
                                reg = <0x30380000 0x10000>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                                #clock-cells = <1>;
                                clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
                                         <&clk_ext3>, <&clk_ext4>;
                                                <&clk IMX8MM_CLK_AUDIO_AHB>,
                                                <&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
                                                <&clk IMX8MM_SYS_PLL3>,
-                                               <&clk IMX8MM_VIDEO_PLL1>,
                                                <&clk IMX8MM_AUDIO_PLL1>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
                                                         <&clk IMX8MM_ARM_PLL_OUT>,
                                                        <400000000>,
                                                        <400000000>,
                                                        <750000000>,
-                                                       <594000000>,
                                                        <393216000>;
                        };
 
                                assigned-clock-parents = <&clk IMX8MM_VIDEO_PLL1_OUT>,
                                                         <&clk IMX8MM_SYS_PLL2_1000M>,
                                                         <&clk IMX8MM_SYS_PLL1_800M>;
-                               assigned-clock-rates = <594000000>, <500000000>, <200000000>;
+                               assigned-clock-rates = <24000000>, <500000000>, <200000000>;
                                interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_LCDIF>;
                                status = "disabled";
                                clocks = <&clk IMX8MM_CLK_DSI_CORE>,
                                         <&clk IMX8MM_CLK_DSI_PHY_REF>;
                                clock-names = "bus_clk", "sclk_mipi";
-                               assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE>,
-                                                 <&clk IMX8MM_CLK_DSI_PHY_REF>;
-                               assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
-                                                        <&clk IMX8MM_CLK_24M>;
-                               assigned-clock-rates = <266000000>, <24000000>;
-                               samsung,pll-clock-frequency = <24000000>;
+                               assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE>;
+                               assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>;
                                interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_MIPI_DSI>;
                                status = "disabled";
                        assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
                                          <&clk IMX8MM_GPU_PLL_OUT>;
                        assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
-                       assigned-clock-rates = <0>, <1000000000>;
+                       assigned-clock-rates = <0>, <800000000>;
                        power-domains = <&pgc_gpu>;
                };
 
                        assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
                                          <&clk IMX8MM_GPU_PLL_OUT>;
                        assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
-                       assigned-clock-rates = <0>, <1000000000>;
+                       assigned-clock-rates = <0>, <800000000>;
                        power-domains = <&pgc_gpu>;
                };
 
index 90073b16536f401ebf0c8003607e87e3490198cb..2a64115eebf1c68b69eb0076aa08558eface5705 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright 2020 Compass Electronics Group, LLC
  */
 
+#include "imx8mn-overdrive.dtsi"
+
 / {
        aliases {
                rtc0 = &rtc;
index 22a754d438f19f1f7fbaed51f2718a08ee8390e7..bbb07c650da9c273a540976142197d9ff1bd5389 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 
 #include "imx8mn.dtsi"
+#include "imx8mn-bsh-smm-s2-display.dtsi"
 
 / {
        chosen {
diff --git a/src/arm64/freescale/imx8mn-bsh-smm-s2-display.dtsi b/src/arm64/freescale/imx8mn-bsh-smm-s2-display.dtsi
new file mode 100644 (file)
index 0000000..7675583
--- /dev/null
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 BSH
+ */
+
+/ {
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 700000 0>;      /* 700000 ns = 1337Hz */
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <50>;
+               status = "okay";
+       };
+
+       reg_3v3_dvdd: regulator-3v3-O3 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dvdd>;
+               regulator-name = "3v3-dvdd-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 7 GPIO_ACTIVE_LOW>;
+       };
+
+       reg_v3v3_avdd: regulator-3v3-O2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_avdd>;
+               regulator-name = "3v3-avdd-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_bl>;
+       status = "okay";
+};
+
+&lcdif {
+       assigned-clocks = <&clk IMX8MN_VIDEO_PLL1>;
+       assigned-clock-rates = <594000000>;
+       status = "okay";
+};
+
+&pgc_dispmix {
+       assigned-clocks = <&clk IMX8MN_CLK_DISP_AXI>, <&clk IMX8MN_CLK_DISP_APB>;
+       assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_1000M>, <&clk IMX8MN_SYS_PLL1_800M>;
+       assigned-clock-rates = <500000000>, <200000000>;
+};
+
+&mipi_dsi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       samsung,esc-clock-frequency = <20000000>;
+       samsung,pll-clock-frequency = <12000000>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "sharp,ls068b3sx02", "syna,r63353";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_panel>;
+               reg = <0>;
+
+               backlight = <&backlight>;
+               dvdd-supply = <&reg_3v3_dvdd>;
+               avdd-supply = <&reg_v3v3_avdd>;
+               reset-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mipi_dsi_out>;
+                       };
+               };
+
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mipi_dsi_out: endpoint {
+                               remote-endpoint = <&panel_in>;
+                       };
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_avdd: avddgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5       0x16    /* VDD 3V3_VO2 */
+               >;
+       };
+
+       /* This is for both PWM and voltage regulators for display */
+       pinctrl_bl: blgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO01_PWM1_OUT        0x16
+               >;
+       };
+
+       pinctrl_dvdd: dvddgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7       0x16    /* VDD 3V3_VO3 */
+               >;
+       };
+
+       pinctrl_panel: panelgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29        0x16    /* panel reset */
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mn-dimonoff-gateway-evk.dts b/src/arm64/freescale/imx8mn-dimonoff-gateway-evk.dts
new file mode 100644 (file)
index 0000000..6f9b829
--- /dev/null
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2022 DimOnOff
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx8mn-var-som-symphony.dts"
+
+/ {
+       model = "DimOnOff Gateway EVK board";
+       compatible = "dimonoff,gateway-evk", "variscite,var-som-mx8mn",
+                    "fsl,imx8mn";
+
+       /*
+        * U30 FPF2193 regulator.
+        * Source = BASE_PER_3V3 = SOM_3V3 (COM pin 49).
+        */
+       reg_disp_3v3: regulator-disp-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "Display 3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               key-enter {
+                       label = "enter";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ENTER>;
+                       wakeup-source;
+               };
+       };
+
+       /* Bourns PEC12R rotary encoder, 24 steps. */
+       rotary: rotary-encoder {
+               compatible = "rotary-encoder";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rotary>;
+               gpios = <&gpio5 12 GPIO_ACTIVE_LOW>, /* A */
+                       <&gpio5 13 GPIO_ACTIVE_LOW>; /* B */
+               linux,axis = <0>; /* REL_X */
+               rotary-encoder,encoding = "gray";
+               rotary-encoder,relative-axis;
+       };
+};
+
+/* Disable Asynchronous Sample Rate Converter (audio) */
+&easrc {
+       status = "disabled";
+};
+
+&ecspi1 {
+       /* Resistive touch controller */
+       /delete-node/ touchscreen@0;
+};
+
+&gpu {
+       status = "disabled";
+};
+
+&i2c2 {
+       adc@48 {
+               compatible = "ti,ads7924";
+               reg = <0x48>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adc>;
+               vref-supply = <&reg_disp_3v3>;
+               reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@0 {
+                       reg = <0>;
+                       label = "Pot0";
+               };
+               channel@1 {
+                       reg = <1>;
+                       label = "Pot1";
+               };
+               channel@2 {
+                       reg = <2>;
+                       label = "Pot2";
+               };
+               channel@3 {
+                       reg = <3>;
+                       label = "Pot3";
+               };
+       };
+
+       rtc@51 {
+               compatible = "nxp,pcf2129";
+               reg = <0x51>;
+               reset-source; /* For watchdog. */
+       };
+
+       rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc>;
+               reset-source; /* For watchdog. */
+               interrupt-parent = <&gpio5>;
+               interrupts = <10 IRQ_TYPE_EDGE_FALLING>; /* J17.6 on EVK */
+       };
+};
+
+&i2c3 {
+       touchscreen@38 {
+               status = "disabled";
+       };
+
+       codec@1a {
+               status = "disabled";
+       };
+
+       /* DS1337 RTC module */
+       rtc@68 {
+               status = "disabled";
+       };
+};
+
+&sai5 {
+       status = "disabled";
+};
+
+&iomuxc {
+       pinctrl_gpio_keys: gpiokeysgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO08_GPIO1_IO8       0xc6
+               >;
+       };
+
+       pinctrl_rotary: rotarygrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI2_MISO_GPIO5_IO12     0x00000156
+                       MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13      0x00000156
+               >;
+       };
+
+       pinctrl_adc: adcgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0x00000156
+               >;
+       };
+
+       pinctrl_rtc: rtcgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI2_SCLK_GPIO5_IO10     0x00000156
+                       MX8MN_IOMUXC_ECSPI2_MOSI_GPIO5_IO11     0x00000156
+               >;
+       };
+};
index 3f6a19839c9e8e5867ff70f66a021687a09e8f54..a0e13d3324ed1211720a2bae9a8b9bd242bd1727 100644 (file)
                interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                status = "okay";
 
-               port {
-                       typec1_dr_sw: endpoint {
-                               remote-endpoint = <&usb1_drd_sw>;
-                       };
-               };
-
                typec1_con: connector {
                        compatible = "usb-c-connector";
                        label = "USB-C";
                                     PDO_VAR(5000, 20000, 3000)>;
                        op-sink-microwatt = <15000000>;
                        self-powered;
+
+                       port {
+                               typec1_dr_sw: endpoint {
+                                       remote-endpoint = <&usb1_drd_sw>;
+                               };
+                       };
                };
        };
 };
diff --git a/src/arm64/freescale/imx8mn-overdrive.dtsi b/src/arm64/freescale/imx8mn-overdrive.dtsi
new file mode 100644 (file)
index 0000000..5d03fb8
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+&gpu {
+       assigned-clocks = <&clk IMX8MN_CLK_GPU_CORE>,
+                         <&clk IMX8MN_CLK_GPU_SHADER>,
+                         <&clk IMX8MN_CLK_GPU_AXI>,
+                         <&clk IMX8MN_CLK_GPU_AHB>,
+                         <&clk IMX8MN_GPU_PLL>;
+       assigned-clock-parents = <&clk IMX8MN_GPU_PLL_OUT>,
+                                 <&clk IMX8MN_GPU_PLL_OUT>,
+                                 <&clk IMX8MN_SYS_PLL1_800M>,
+                                 <&clk IMX8MN_SYS_PLL1_800M>;
+       assigned-clock-rates = <600000000>,
+                              <600000000>,
+                              <800000000>,
+                              <400000000>,
+                              <1200000000>;
+};
diff --git a/src/arm64/freescale/imx8mn-rve-gateway.dts b/src/arm64/freescale/imx8mn-rve-gateway.dts
new file mode 100644 (file)
index 0000000..1b633bd
--- /dev/null
@@ -0,0 +1,285 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2023 DimOnOff
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx8mn-var-som.dtsi"
+
+/ {
+       model = "RVE gateway";
+       compatible = "rve,rve-gateway", "variscite,var-som-mx8mn", "fsl,imx8mn";
+
+       crystal_duart_24m: crystal-duart-24m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               key-enter {
+                       label = "enter";
+                       gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ENTER>;
+               };
+
+               key-exit {
+                       label = "exit";
+                       gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ESC>;
+               };
+       };
+
+       lcd {
+               compatible = "hit,hd44780";
+               display-height-chars = <2>;
+               display-width-chars = <20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lcd>;
+               data-gpios = <&gpio5  1 GPIO_ACTIVE_HIGH>,
+                            <&gpio1  6 GPIO_ACTIVE_HIGH>,
+                            <&gpio1 14 GPIO_ACTIVE_HIGH>,
+                            <&gpio4 28 GPIO_ACTIVE_HIGH>,
+                            <&gpio5 24 GPIO_ACTIVE_HIGH>,
+                            <&gpio5  2 GPIO_ACTIVE_HIGH>,
+                            <&gpio1 12 GPIO_ACTIVE_HIGH>,
+                            <&gpio5 25 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>;
+               rs-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               rw-gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       /* Bourns PEC12R rotary encoder, 24 steps. */
+       rotary: rotary-encoder {
+               compatible = "rotary-encoder";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rotary>;
+               gpios = <&gpio1  5 GPIO_ACTIVE_LOW>, /* A */
+                       <&gpio3 21 GPIO_ACTIVE_LOW>; /* B */
+               linux,axis = <0>; /* REL_X */
+               rotary-encoder,encoding = "gray";
+               rotary-encoder,relative-axis;
+       };
+};
+
+&ecspi1 {
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+
+       duart1: serial@0 {
+               compatible = "nxp,sc16is752";
+               reg = <0>;
+               spi-rx-bus-width = <1>;
+               spi-tx-bus-width = <1>;
+               spi-max-frequency = <4000000>;
+               clocks = <&crystal_duart_24m>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "RADIO0", "RADIO1", "RADIO2", "RADIO3",
+                                 "RADIO4", "RADIO_RESET", "TP12", "TP11";
+               linux,rs485-enabled-at-boot-time;
+               rs485-rts-active-low;
+       };
+
+       /delete-node/ touchscreen@0;
+};
+
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       /delete-property/ dmas;
+       /delete-property/ dma-names;
+       status = "okay";
+
+       duart2: serial@0 {
+               compatible = "nxp,sc16is752";
+               reg = <0>;
+               spi-rx-bus-width = <1>;
+               spi-tx-bus-width = <1>;
+               spi-max-frequency = <4000000>;
+               clocks = <&crystal_duart_24m>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "LED_B_USER", "LED_R_USER", "LED_G_USER",
+                                 "GPIO_EXT3", "GPIO_EXT2", "GPIO_EXT1",
+                                 "GPIO_EXT0", "TP13";
+               linux,rs485-enabled-at-boot-time;
+               rs485-rts-active-low;
+       };
+};
+
+/* Configure PWM pins in GPIO mode: */
+&gpio5 {
+       gpio-line-names = "", "", "", "PWM3", "PWM2", "PWM1";
+};
+
+&gpu {
+       status = "disabled";
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       /* Carrier board EEPROM */
+       eeprom_cb: eeprom@56 {
+               compatible = "atmel,24c04";
+               reg = <0x56>;
+               pagesize = <16>;
+               vcc-supply = <&reg_3p3v>;
+       };
+
+       lm75: sensor@48 {
+               compatible = "st,stlm75";
+               reg = <0x48>;
+               vs-supply = <&reg_3p3v>;
+       };
+
+       mcp7940: rtc@6f {
+               compatible = "microchip,mcp7940x";
+               reg = <0x6f>;
+       };
+};
+
+&i2c3 {
+       codec@1a {
+               status = "disabled";
+       };
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       pcf8574_1: gpio@38 {
+               compatible = "nxp,pcf8574";
+               reg = <0x38>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "LED_B_COMM3", "LED_R_COMM3", "LED_G_COMM3",
+                                 "TP14", "TP15", "LED_G_COMM4", "LED_R_COMM4",
+                                 "LED_B_COMM4";
+       };
+
+       pcf8574_2: gpio@39 {
+               compatible = "nxp,pcf8574";
+               reg = <0x39>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "LED_B_COMM2", "LED_G_COMM2", "LED_B_COMM1",
+                                 "LED_R_COMM2", "LED_R_COMM1", "LED_G_COMM1",
+                                 "TP16", "TP17";
+       };
+};
+
+/* Bluetooth */
+&uart2 {
+       status = "disabled";
+};
+
+&usbotg1 {
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
+/* SD interface on expansion connector. */
+&usdhc2 {
+       vmmc-supply = <&reg_3p3v>;
+       cd-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK    0x13
+                       MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI    0x13
+                       MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO    0x13
+                       MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9       0x13 /* SS0 */
+                       MX8MN_IOMUXC_SAI5_RXD1_GPIO3_IO22       0x13 /* SC16 IRQ */
+               >;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK    0x13
+                       MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI    0x13
+                       MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO    0x13
+                       MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13      0x13 /* SS0 */
+                       MX8MN_IOMUXC_SAI5_RXC_GPIO3_IO20        0x13 /* SC16 IRQ */
+               >;
+       };
+
+       pinctrl_gpio_keys: gpiokeysgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO01_GPIO1_IO1       0xc6 /* Enter */
+                       MX8MN_IOMUXC_SAI5_RXD2_GPIO3_IO23       0xc6 /* Exit */
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL          0x400001c3
+                       MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA          0x400001c3
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL          0x400001c3
+                       MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA          0x400001c3
+               >;
+       };
+
+       pinctrl_lcd: lcdgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI3_TXD_GPIO5_IO1         0x00000156 /* D0 */
+                       MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6       0x00000156 /* D1 */
+                       MX8MN_IOMUXC_GPIO1_IO14_GPIO1_IO14      0x00000156 /* D2 */
+                       MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28       0x00000156 /* D3 */
+                       MX8MN_IOMUXC_UART2_RXD_GPIO5_IO24       0x00000156 /* D4 */
+                       MX8MN_IOMUXC_SAI3_MCLK_GPIO5_IO2        0x00000156 /* D5 */
+                       MX8MN_IOMUXC_GPIO1_IO12_GPIO1_IO12      0x00000156 /* D6 */
+                       MX8MN_IOMUXC_UART2_TXD_GPIO5_IO25       0x00000156 /* D7 */
+                       MX8MN_IOMUXC_UART1_TXD_GPIO5_IO23       0x00000156 /* E */
+                       MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7       0x00000156 /* RS */
+                       MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27       0x00000156 /* R/W */
+               >;
+       };
+
+       pinctrl_rotary: rotarygrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5       0x00000156 /* A */
+                       MX8MN_IOMUXC_SAI5_RXD0_GPIO3_IO21       0x00000156 /* B */
+               >;
+       };
+
+       /* Override Card Detect function GPIO value (GPIO1_IO10) from SOM: */
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13      0x41
+               >;
+       };
+};
index 3f1e49bfe38f734e39ea0988d099751411403706..c07d59147ab55956267c2572d4a49b853c1f3990 100644 (file)
@@ -11,6 +11,7 @@
 / {
        model = "TQ-Systems GmbH i.MX8MN TQMa8MxNL on MBa8Mx";
        compatible = "tq,imx8mn-tqma8mqnl-mba8mx", "tq,imx8mn-tqma8mqnl", "fsl,imx8mn";
+       chassis-type = "embedded";
 
        aliases {
                eeprom0 = &eeprom3;
index a7a57442cb81ff9535ffe810118869be574f4a94..a6b94d1957c92ac6bcc18667b477ca05eda8b1bc 100644 (file)
                        linux,default-trigger = "heartbeat";
                };
        };
+
+       /* Peripherals supply, enabled by Q2 after SOM_3V3 rises. */
+       reg_per_3v3: regulator-peripheral-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "per_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 };
 
 &ethphy {
@@ -79,6 +88,7 @@
                interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
                #gpio-cells = <2>;
                wakeup-source;
+               vcc-supply = <&reg_per_3v3>;
 
                /* USB 3.0 OTG (usbotg1) / SATA port switch, set to USB 3.0 */
                usb3-sata-sel-hog {
index b8946edf317bd1b3fa841ac3468003efa0c670a7..b364307868f25eb05507c651afa6fee8d0c8423f 100644 (file)
                gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
+
+       reg_3v3_fixed: regulator-3v3-fixed {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 };
 
 &A53_0 {
                compatible = "atmel,24c04";
                reg = <0x52>;
                pagesize = <16>;
+               vcc-supply = <&reg_3v3_fixed>;
        };
 };
 
index 1bb1d0c1bae4de28bcb2939a54b353efcbc2144e..136e75c51251a60c7a7f831d7e987ea27241f6a4 100644 (file)
                        clk: clock-controller@30380000 {
                                compatible = "fsl,imx8mn-ccm";
                                reg = <0x30380000 0x10000>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                                #clock-cells = <1>;
                                clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
                                         <&clk_ext3>, <&clk_ext4>;
index 0bea0798d2db25ed3dbe4167643843d836ea7634..a08057410bdef5b3a2572cb5c5e2fe6ea35b5522 100644 (file)
                };
        };
 
+       bridge-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&adv7535_out>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                enable-active-high;
        };
 
+       sound-adv7535 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "sound-adv7535";
+               simple-audio-card,format = "i2s";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai5>;
+                       system-clock-direction-out;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&adv_bridge>;
+               };
+       };
+
        sound-dmic {
                compatible = "simple-audio-card";
                simple-audio-card,name = "sound-pdm";
        status = "okay";
 
        tpm: tpm@0 {
-               compatible = "infineon,slb9670";
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                reg = <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_tpm>;
                #interrupt-cells = <2>;
        };
 
+       adv_bridge: hdmi@3d {
+               compatible = "adi,adv7535";
+               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
+               reg-names = "main", "cec", "edid", "packet";
+               adi,dsi-lanes = <4>;
+               #sound-dai-cells = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               adv7535_in: endpoint {
+                                       remote-endpoint = <&dsi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               adv7535_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
        pcieclk: clock-generator@68 {
                compatible = "renesas,9fgv0241";
                reg = <0x68>;
        };
 };
 
+&lcdif1 {
+       status = "okay";
+};
+
 &micfil {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pdm>;
        status = "okay";
 };
 
+&mipi_dsi {
+       samsung,esc-clock-frequency = <10000000>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       dsi_out: endpoint {
+                               remote-endpoint = <&adv7535_in>;
+                       };
+               };
+       };
+};
+
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
        status = "okay";
 };
 
+&sai5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai5>;
+       assigned-clocks = <&clk IMX8MP_CLK_SAI5>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
                >;
        };
 
+       pinctrl_sai5: sai5grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI5_TX_DATA00 0xd6
+                       MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI5_TX_BCLK   0xd6
+                       MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI5_TX_SYNC   0xd6
+               >;
+       };
+
        pinctrl_tpm: tpmgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00      0x19 /* Reset */
index d98a040860a48a3ff2c6592420853a0dacc9b48a..5828c9d7821de1eab50967972cf406f8f6359da5 100644 (file)
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4>;
-       status = "okay";
+       status = "disabled";
 };
 
 &usb3_phy0 {
index 267ceffc02d84064946540abd205b71caa908c73..2c19766ebf093fde85912660e1a4145812e4ab82 100644 (file)
@@ -75,7 +75,7 @@
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
-       phy-connection-type = "rgmii-id";
+       phy-mode = "rgmii-id";
        phy-handle = <&ethphy0>;
        status = "okay";
 
index 0afd90224a59a56887acd85efd6a28f7c7956427..b11d694b98e1bc6818b40ca48f8d5bee2fd090c5 100644 (file)
                regulator-always-on;
        };
 
+       reg_csi1_1v8: regulator-csi1-vdd1v8 {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-name = "CSI1_VDD1V8";
+               gpio = <&expander0 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_baseboard_vdd3v3>;
+       };
+
+       reg_csi1_3v3: regulator-csi1-vdd3v3 {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "CSI1_VDD3V3";
+               gpio = <&expander0 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_vdd5v0>;
+       };
+
+       reg_csi2_1v8: regulator-csi2-vdd1v8 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_csi2_1v8>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-name = "CSI2_VDD1V8";
+               gpio = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_baseboard_vdd3v3>;
+       };
+
+       reg_csi2_3v3: regulator-csi2-vdd3v3 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_csi2_3v3>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "CSI2_VDD3V3";
+               gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_vdd5v0>;
+       };
+
        regulator-vbus-usb20 {
                compatible = "regulator-fixed";
                regulator-min-microvolt = <5000000>;
                >;
        };
 
+       pinctrl_reg_csi2_1v8: regcsi21v8grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21              0x19
+               >;
+       };
+
+       pinctrl_reg_csi2_3v3: regcsi23v3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25               0x19
+               >;
+       };
+
        pinctrl_uart2: uart2grp {
                fsl,pins = <
                        MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX            0x14f
index bc312aa1bfc8b43c37e33e81c6fa6d5287828a58..91094c2277443c1585dfb7f31dccfb27aa1bcc8d 100644 (file)
@@ -6,6 +6,8 @@
 
 #include "imx8mp.dtsi"
 
+#include <dt-bindings/leds/common.h>
+
 / {
        model = "Polyhex i.MX8MPlus Debix SOM A";
        compatible = "polyhex,imx8mp-debix-som-a", "fsl,imx8mp";
                gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+
+               led-0 {
+                       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+       };
 };
 
 &A53_0 {
 };
 
 &iomuxc {
+       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                 0x400001c2
index d8963f32ec84cacd49269f76ceef86bea38a4ccb..43f1d45ccc96f01686534d228de9b69630db3ebb 100644 (file)
                                  <&clk IMX8MP_AUDIO_PLL2_OUT>;
                assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
                assigned-clock-rates = <13000000>, <13000000>, <156000000>;
-               reset-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 GPIO_ACTIVE_HIGH>;
                status = "disabled";
 
                ports {
                reg = <0x53>;
        };
 
+       eeprom0wl: eeprom@58 {
+               compatible = "atmel,24c32d-wl"; /* M24C32-D WL page of 0x50 */
+               pagesize = <32>;
+               reg = <0x58>;
+       };
+
+       eeprom1wl: eeprom@5b {
+               compatible = "atmel,24c32d-wl"; /* M24C32-D WL page of 0x53 */
+               pagesize = <32>;
+               reg = <0x5b>;
+       };
+
        ioexp: gpio@74 {
                compatible = "nxp,pca9539";
                reg = <0x74>;
index cc9d468b43ab8d27be45ad5ed7bad945806ab64b..f87fa5a948ccc380c473778e9f0b61c68a0b7e7c 100644 (file)
                };
 
        };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_vdev0vring0: vdev0vring0@942f0000 {
+                       reg = <0 0x942f0000 0 0x8000>;
+                       no-map;
+               };
+
+               dsp_vdev0vring1: vdev0vring1@942f8000 {
+                       reg = <0 0x942f8000 0 0x8000>;
+                       no-map;
+               };
+
+               dsp_vdev0buffer: vdev0buffer@94300000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x94300000 0 0x100000>;
+                       no-map;
+               };
+       };
 };
 
 &flexspi {
index e4215c83ee0f590d5f7acb441c7bd03b33233eb9..da4b1807c2753cdecdcbcbef6e859e38cdee6adf 100644 (file)
@@ -57,8 +57,8 @@
                clocks = <&clk IMX8MP_CLK_CLKOUT1>;
                #sound-dai-cells = <0>;
 
-               VDDA-supply  = <&reg_vcc_3v3_audio>;
-               VDDD-supply  = <&reg_vcc_1v8_audio>;
+               VDDA-supply = <&reg_vcc_3v3_audio>;
+               VDDD-supply = <&reg_vcc_1v8_audio>;
                VDDIO-supply = <&reg_vcc_1v8_audio>;
        };
 };
diff --git a/src/arm64/freescale/imx8mp-skov-reva.dtsi b/src/arm64/freescale/imx8mp-skov-reva.dtsi
new file mode 100644 (file)
index 0000000..59813ef
--- /dev/null
@@ -0,0 +1,711 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+#include "imx8mp.dtsi"
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               /* some of this aliases like backlight0, ethernetX and switch0
+                * are needed for the bootloader.
+                */
+               backlight0 = &backlight;
+               ethernet0 = &eqos;
+               ethernet1 = &lan1;
+               ethernet2 = &lan2;
+               rtc0 = &i2c_rtc;
+               rtc1 = &snvs_rtc;
+               switch0 = &switch;
+       };
+
+       /*
+        * Backlight is present only on some of boards, so it is disabled by
+        * default.
+        */
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pinctrl-0 = <&pinctrl_backlight>;
+               pwms = <&pwm1 0 20000 0>;
+               power-supply = <&reg_24v>;
+               enable-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <17>;
+               default-brightness-level = <8>;
+               status = "disabled";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+
+               led-0 {
+                       label = "D1";
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_STATUS;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       label = "D2";
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               led-2 {
+                       label = "D3";
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       reg_1v2: regulator-1v2 {
+               compatible = "regulator-fixed";
+               vin-supply = <&reg_5v_p>;
+               regulator-name = "1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
+       reg_2v5: regulator-2v5 {
+               compatible = "regulator-fixed";
+               vin-supply = <&reg_5v_s>;
+               regulator-name = "2V5";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               vin-supply = <&reg_5v_s>;
+               regulator-name = "3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       /*
+        * This regulator will provide power as long as possible even if
+        * undervoltage is detected.
+        */
+       reg_5v_p: regulator-5v-p {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_P";
+               vin-supply = <&reg_24v>;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       /*
+        * This regulator will be automatically shutdown if undervoltage is
+        * detected.
+        */
+       reg_5v_s: regulator-5v-s {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_S";
+               vin-supply = <&reg_24v>;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_24v: regulator-24v {
+               compatible = "regulator-fixed";
+               regulator-name = "24V";
+               regulator-min-microvolt = <24000000>;
+               regulator-max-microvolt = <24000000>;
+       };
+
+       reg_can2rs: regulator-can2rs {
+               compatible = "regulator-fixed";
+               regulator-name = "CAN2RS";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_can2rs>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 22 GPIO_ACTIVE_LOW>;
+       };
+
+       reg_canrs: regulator-canrs {
+               compatible = "regulator-fixed";
+               regulator-name = "CANRS";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_canrs>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 21 GPIO_ACTIVE_LOW>;
+       };
+
+       reg_tft_vcom: regulator-tft-vcom {
+               compatible = "pwm-regulator";
+               pwms = <&pwm4 0 20000 0>;
+               regulator-name = "VCOM";
+               vin-supply = <&reg_5v_s>;
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+               regulator-always-on;
+               voltage-table = <3600000 26>;
+               status = "disabled";
+       };
+
+       reg_vsd_3v3: regulator-vsd-3v3 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vsd_3v3>;
+               vin-supply = <&reg_vdd_3v3>;
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_1 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_2 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_3 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       adc: adc@0 {
+               compatible = "microchip,mcp3002";
+               reg = <0>;
+               vref-supply = <&reg_vdd_3v3>;
+               spi-max-frequency = <1000000>;
+               #io-channel-cells = <1>;
+       };
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-txid";
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_canrs>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can2rs>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupts-extended = <&gpio1 3 IRQ_TYPE_EDGE_RISING>;
+               sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+
+               regulators {
+                       reg_vdd_soc: BUCK1 {
+                               regulator-name = "VDD_SOC";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       reg_vdd_arm: BUCK2 {
+                               regulator-name = "VDD_ARM";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                       };
+
+                       reg_vdd_3v3: BUCK4 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vdd_1v8: BUCK5 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_dram_1v1: BUCK6 {
+                               regulator-name = "NVCC_DRAM_1V1";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_snvs_1v8: LDO1 {
+                               regulator-name = "NVCC_SNVS_1V8";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <3300000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vdda_1v8: LDO3 {
+                               regulator-name = "VDDA_1V8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_sd2: LDO5 {
+                               regulator-name = "NVCC_SD2";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               vin-supply = <&reg_5v_p>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+
+       i2c_rtc: rtc@51 {
+               compatible = "nxp,pcf85063tp";
+               reg = <0x51>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc>;
+               interrupts-extended = <&gpio4 31 IRQ_TYPE_EDGE_FALLING>;
+               quartz-load-femtofarads = <12500>;
+       };
+};
+
+&i2c4 {
+       clock-frequency = <380000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       switch: switch@5f {
+               compatible = "microchip,ksz9893";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_switch>;
+               reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+               reg = <0x5f>;
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       lan1: port@0 {
+                               reg = <0>;
+                               phy-mode = "internal";
+                               label = "lan1";
+                       };
+
+                       lan2: port@1 {
+                               reg = <1>;
+                               phy-mode = "internal";
+                               label = "lan2";
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "cpu";
+                               ethernet = <&eqos>;
+                               phy-mode = "rgmii";
+                               /* 2ns RX delay is implemented on PCB */
+                               tx-internal-delay-ps = <2000>;
+                               rx-internal-delay-ps = <0>;
+
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&usb3_0 {
+       status = "okay";
+};
+
+&usb3_1 {
+       status = "okay";
+};
+
+&usb3_phy0 {
+       vbus-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&usb3_phy1 {
+       vbus-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       dr_mode = "host";
+};
+
+&usb_dwc3_1 {
+       dr_mode = "host";
+};
+
+/* 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>;
+       vmmc-supply = <&reg_vsd_3v3>;
+       vqmmc-supply = <&reg_nvcc_sd2>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+       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>;
+       vmmc-supply = <&reg_vdd_3v3>;
+       vqmmc-supply = <&reg_vdd_1v8>;
+       bus-width = <8>;
+       no-sd;
+       no-sdio;
+       non-removable;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_backlight: backlightgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_TXFS__GPIO4_IO24                      0x0100
+               >;
+       };
+
+       pinctrl_can2rs: can2rsgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                       0x154
+               >;
+       };
+
+       pinctrl_canrs: canrsgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21                      0x154
+               >;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK                   0x44
+                       MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI                   0x44
+                       MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO                   0x44
+                       MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13                     0x40
+               >;
+       };
+
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       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
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SPDIF_RX__CAN1_RX                          0x154
+                       MX8MP_IOMUXC_SPDIF_TX__CAN1_TX                          0x154
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_MCLK__CAN2_RX                         0x154
+                       MX8MP_IOMUXC_SAI2_TXD0__CAN2_TX                         0x154
+               >;
+       };
+
+       pinctrl_gpio_led: gpioledgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05                     0x19
+                       MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06                     0x19
+                       MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07                     0x19
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                         0x400001c2
+                       MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                         0x400001c2
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                         0x400001c2
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                         0x400001c2
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                         0x400001c3
+                       MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                         0x400001c3
+               >;
+       };
+
+       pinctrl_pmic: pmicirqgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03                     0x41
+                       MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04                     0x41
+               >;
+       };
+
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SPDIF_EXT_CLK__PWM1_OUT                    0x116
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT                        0x116
+               >;
+       };
+
+       pinctrl_reg_vsd_3v3: regvsd3v3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19    0x40
+               >;
+       };
+
+       pinctrl_rtc: rtcgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31                      0x41
+               >;
+       };
+
+       pinctrl_switch: switchgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00                       0x41
+                       MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01                       0x41
+               >;
+       };
+
+       pinctrl_touchscreen: touchscreengrp {
+               fsl,pins = <
+                       /* external 10 k pull up */
+                       /* CTP_INT */
+                       MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28                      0x41
+                       /* CTP_RST */
+                       MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29                       0x41
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX                    0x140
+                       MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX                    0x140
+                       MX8MP_IOMUXC_UART3_RXD__UART1_DTE_RTS                   0x140
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                    0x14f
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                    0x14f
+               >;
+       };
+
+       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
+               >;
+       };
+
+       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
+               >;
+       };
+
+       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
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                       0x1c4
+                       MX8MP_IOMUXC_SD2_WP__GPIO2_IO20                         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
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-skov-revb-hdmi.dts b/src/arm64/freescale/imx8mp-skov-revb-hdmi.dts
new file mode 100644 (file)
index 0000000..c1ca69d
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include "imx8mp-skov-reva.dtsi"
+
+/ {
+       model = "SKOV IMX8MP CPU revB - HDMI";
+       compatible = "skov,imx8mp-skov-revb-hdmi", "fsl,imx8mp";
+};
+
+&iomuxc {
+       pinctrl_hdmi: hdmigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL             0x1c3
+                       MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA             0x1c3
+                       MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD                 0x19
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-skov-revb-lt6.dts b/src/arm64/freescale/imx8mp-skov-revb-lt6.dts
new file mode 100644 (file)
index 0000000..ccbd3ab
--- /dev/null
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include "imx8mp-skov-reva.dtsi"
+
+/ {
+       model = "SKOV IMX8MP CPU revB - LT6";
+       compatible = "skov,imx8mp-skov-revb-lt6", "fsl,imx8mp";
+
+       touchscreen {
+               compatible = "resistive-adc-touch";
+               io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>, <&adc_ts 5>;
+               io-channel-names = "y", "z1", "z2", "x";
+               touchscreen-min-pressure = <65000>;
+               touchscreen-inverted-y;
+               touchscreen-swapped-x-y;
+               touchscreen-x-plate-ohms = <300>;
+       };
+};
+
+&reg_tft_vcom {
+       regulator-min-microvolt = <3600000>;
+       regulator-max-microvolt = <3600000>;
+       voltage-table = <3600000 26>;
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&backlight {
+       status = "okay";
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       adc_ts: adc@0 {
+               compatible = "ti,tsc2046e-adc";
+               reg = <0>;
+               pinctrl-0 = <&pinctrl_touch>;
+               pinctrl-names ="default";
+               spi-max-frequency = <1000000>;
+               interrupts-extended = <&gpio4 25 IRQ_TYPE_LEVEL_LOW>;
+               #io-channel-cells = <1>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <1>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@3 {
+                       reg = <3>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@4 {
+                       reg = <4>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@5 {
+                       reg = <5>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK                   0x44
+                       MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI                   0x44
+                       MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO                   0x44
+                       MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09                     0x40
+               >;
+       };
+
+       pinctrl_touch: touchgrp {
+               fsl,pins = <
+                       /* external pull up */
+                       MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25                       0x40
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts b/src/arm64/freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts
new file mode 100644 (file)
index 0000000..3c2efdc
--- /dev/null
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include "imx8mp-skov-reva.dtsi"
+
+/ {
+       model = "SKOV IMX8MP CPU revB - MI1010AIT-1CP1";
+       compatible = "skov,imx8mp-skov-revb-mi1010ait-1cp1", "fsl,imx8mp";
+
+       panel {
+               compatible = "multi-inno,mi1010ait-1cp";
+               backlight = <&backlight>;
+               power-supply = <&reg_tft_vcom>;
+
+               port {
+                       in_lvds0: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch0>;
+                       };
+               };
+       };
+};
+
+&backlight {
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       touchscreen@38 {
+               compatible = "edt,edt-ft5406";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touchscreen>;
+               interrupts-extended = <&gpio4 28 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio4 29 GPIO_ACTIVE_LOW>;
+               touchscreen-size-x = <1280>;
+               touchscreen-size-y = <800>;
+               vcc-supply = <&reg_vdd_3v3>;
+               iovcc-supply = <&reg_vdd_3v3>;
+               wakeup-source;
+       };
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       /* IMX8MP_CLK_MEDIA_LDB = IMX8MP_CLK_MEDIA_DISP2_PIX * 7 */
+       assigned-clock-rates = <482300000>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&in_lvds0>;
+                       };
+               };
+       };
+};
+
+&media_blk_ctrl {
+       /* currently it is not possible to let display clocks confugure
+        * automatically, so we need to set them manually
+        */
+       assigned-clock-rates = <500000000>, <200000000>, <0>,
+               /* IMX8MP_CLK_MEDIA_DISP2_PIX = pixelclk of lvds panel */
+               <68900000>,
+               /* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_LDB * 2 */
+               <964600000>;
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&reg_tft_vcom {
+       regulator-min-microvolt = <3160000>;
+       regulator-max-microvolt = <3160000>;
+       voltage-table = <3160000 73>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                         0x400001c2
+                       MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                         0x400001c2
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtso b/src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtso
new file mode 100644 (file)
index 0000000..5058cd9
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Alexander Stein
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+
+&{/} {
+       compatible = "tq,imx8mp-tqma8mpql-mba8mpxl", "tq,imx8mp-tqma8mpql", "fsl,imx8mp";
+};
+
+&backlight_lvds {
+       status = "okay";
+};
+
+&display {
+       compatible = "auo,g133han01";
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dual-lvds-odd-pixels;
+
+                       panel_in_lvds0: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dual-lvds-even-pixels;
+
+                       panel_in_lvds1: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch1>;
+                       };
+               };
+       };
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+                                <&clk IMX8MP_VIDEO_PLL1>;
+       assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
+       assigned-clock-rates = <0>, <988400000>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&panel_in_lvds0>;
+                       };
+               };
+
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&panel_in_lvds1>;
+                       };
+               };
+       };
+};
+
+&pwm2 {
+       status = "okay";
+};
index 4240e20d38ac32eb5fa27d169ddadbe625d4f15f..86d3da36e4f3eecf64c0168c825baee86dfdab3f 100644 (file)
@@ -15,6 +15,7 @@
 / {
        model = "TQ-Systems i.MX8MPlus TQMa8MPxL on MBa8MPxL";
        compatible = "tq,imx8mp-tqma8mpql-mba8mpxl", "tq,imx8mp-tqma8mpql", "fsl,imx8mp";
+       chassis-type = "embedded";
 
        chosen {
                stdout-path = &uart4;
                clock-frequency = <25000000>;
        };
 
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               type = "micro";
+               label = "X29";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon0>;
+               id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        fan0: pwm-fan {
                compatible = "pwm-fan";
                pinctrl-names = "default";
                enable-active-high;
        };
 
+       reg_vcc_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
        reg_vcc_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "VCC_3V3";
                clock-names = "mclk";
                clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>;
                reset-gpios = <&gpio4 29 GPIO_ACTIVE_LOW>;
-               iov-supply = <&reg_vcc_3v3>;
+               iov-supply = <&reg_vcc_1v8>;
                ldoin-supply = <&reg_vcc_3v3>;
        };
 
 &usb3_1 {
        fsl,disable-port-power-control;
        fsl,permanently-attached;
-       dr_mode = "host";
        status = "okay";
 };
 
        role-switch-default-mode = "peripheral";
        status = "okay";
 
-       connector {
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               type = "micro";
-               label = "X29";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usbcon0>;
-               id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
index bf47b5e9dd8cc0edfa1bb01ad10ec55e3fb8ebbd..0e8d0f3c7ea87194187f127975256657b4f6221b 100644 (file)
@@ -8,6 +8,21 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon1>;
+               type = "micro";
+               label = "Type-C";
+               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        led-controller {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        role-switch-default-mode = "peripheral";
        status = "okay";
 
-       connector {
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usbcon1>;
-               type = "micro";
-               label = "Type-C";
-               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
index f942e949084bdd1444237d9ddd6dc0671982b37d..41c79d2ebdd6201dc10278204c064a4c01c71709 100644 (file)
@@ -8,6 +8,21 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon1>;
+               type = "micro";
+               label = "otg";
+               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        led-controller {
                compatible = "gpio-leds";
                pinctrl-names = "default";
 &ecspi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_spi2>;
-       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>,
+                  <&gpio1 10 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       tpm@1 {
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
+               reg = <0x1>;
+               spi-max-frequency = <36000000>;
+       };
 };
 
 &gpio4 {
        role-switch-default-mode = "peripheral";
        status = "okay";
 
-       connector {
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usbcon1>;
-               type = "micro";
-               label = "otg";
-               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
                        MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI   0x140
                        MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO   0x140
                        MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13     0x140
+                       MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10     0x140
                >;
        };
 
index b0d42b18c5ced7d79f503c48b807f24b090f7862..d5c400b355af564123497cd1805e0b0ad56ded21 100644 (file)
@@ -8,6 +8,21 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon1>;
+               type = "micro";
+               label = "otg";
+               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        led-controller {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
        role-switch-default-mode = "peripheral";
        status = "okay";
 
-       connector {
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usbcon1>;
-               type = "micro";
-               label = "otg";
-               id-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
index 2ab9f4cc12cc9d020f83d8793b8bf5e079bebc79..cae586cd45bdd59aa479e70bb290fc50b0392a3c 100644 (file)
                reg = <0x0 0x40000000 0 0x80000000>;
        };
 
+       connector {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon1>;
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               type = "micro";
+               label = "Type-C";
+               id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
        status = "okay";
 
        tpm@0 {
-               compatible = "tcg,tpm_tis-spi";
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x0>;
                spi-max-frequency = <36000000>;
        };
        role-switch-default-mode = "peripheral";
        status = "okay";
 
-       connector {
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usbcon1>;
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               type = "micro";
-               label = "Type-C";
-               id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
diff --git a/src/arm64/freescale/imx8mp-verdin-mallow.dtsi b/src/arm64/freescale/imx8mp-verdin-mallow.dtsi
new file mode 100644 (file)
index 0000000..8482393
--- /dev/null
@@ -0,0 +1,199 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ *
+ * Common dtsi for Verdin IMX8MP SoM on Mallow carrier board
+ *
+ * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus
+ * https://www.toradex.com/products/carrier-board/mallow-carrier-board
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds>;
+
+               /* SODIMM 52 - USER_LED_1_RED */
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 54 - USER_LED_1_GREEN */
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 56 - USER_LED_2_RED */
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 58 - USER_LED_2_GREEN */
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&backlight {
+       power-supply = <&reg_3p3v>;
+};
+
+/* Verdin SPI_1 */
+&ecspi1 {
+       pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_tpm_cs>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, <&gpio3 16 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       tpm@1 {
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               reg = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tpm_irq>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               spi-max-frequency = <18500000>;
+       };
+};
+
+/* EEPROM on Mallow */
+&eeprom_carrier_board {
+       status = "okay";
+};
+
+/* Verdin ETH_1 */
+&eqos {
+       status = "okay";
+};
+
+/* Verdin CAN_1 */
+&flexcan1 {
+       status = "okay";
+};
+
+/* Verdin CAN_2 */
+&flexcan2 {
+       status = "okay";
+};
+
+/* Temperature sensor on Mallow */
+&hwmon_temp {
+       compatible = "ti,tmp1075";
+       status = "okay";
+};
+
+/* Verdin I2C_2_DSI */
+&i2c2 {
+       status = "okay";
+};
+
+/* Verdin I2C_4_CSI */
+&i2c3 {
+       status = "okay";
+};
+
+/* Verdin I2C_1 */
+&i2c4 {
+       status = "okay";
+};
+
+/* Verdin PCIE_1 */
+&pcie {
+       status = "okay";
+};
+
+&pcie_phy {
+       status = "okay";
+};
+
+/* Verdin PWM_1 */
+&pwm1 {
+       status = "okay";
+};
+
+/* Verdin PWM_2 */
+&pwm2 {
+       status = "okay";
+};
+
+/* Verdin PWM_3_DSI */
+&pwm3 {
+       status = "okay";
+};
+
+&reg_usdhc2_vmmc {
+       vin-supply = <&reg_3p3v>;
+};
+
+/* Verdin UART_1 */
+&uart1 {
+       status = "okay";
+};
+
+/* Verdin UART_2 */
+&uart2 {
+       status = "okay";
+};
+
+/* Verdin UART_3 */
+&uart3 {
+       status = "okay";
+};
+
+/* Verdin USB_1 */
+&usb3_0 {
+       status = "okay";
+};
+
+&usb3_phy0 {
+       status = "okay";
+};
+
+/* Verdin USB_2 */
+&usb3_1 {
+       status = "okay";
+};
+
+&usb3_phy1 {
+       status = "okay";
+};
+
+/* Verdin SD_1 */
+&usdhc2 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_leds: ledsgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00      0x106>, /* SODIMM 52 */
+                       <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01    0x106>, /* SODIMM 54 */
+                       <MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06   0x106>, /* SODIMM 56 */
+                       <MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07   0x106>; /* SODIMM 58 */
+       };
+
+       pinctrl_tpm_cs: tpmcsgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16  0x82>; /* SODIMM 64 */
+       };
+
+       pinctrl_tpm_irq: tpmirqgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14      0x16>; /* SODIMM 66 */
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-verdin-nonwifi-mallow.dts b/src/arm64/freescale/imx8mp-verdin-nonwifi-mallow.dts
new file mode 100644 (file)
index 0000000..6a536a4
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-nonwifi.dtsi"
+#include "imx8mp-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus on Mallow Board";
+       compatible = "toradex,verdin-imx8mp-nonwifi-mallow",
+                    "toradex,verdin-imx8mp-nonwifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
diff --git a/src/arm64/freescale/imx8mp-verdin-wifi-mallow.dts b/src/arm64/freescale/imx8mp-verdin-wifi-mallow.dts
new file mode 100644 (file)
index 0000000..08b7aef
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-wifi.dtsi"
+#include "imx8mp-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus WB on Mallow Board";
+       compatible = "toradex,verdin-imx8mp-wifi-mallow",
+                    "toradex,verdin-imx8mp-wifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
index 04f2083c4ab2e38282d14a86ba3de9e3c9719c9e..c3305f0d40010041a89b855a5f19b8f2d62a521f 100644 (file)
                status = "disabled";
        };
 
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               id-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
+               label = "Type-C";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb_1_id>;
+               self-powered;
+               type = "micro";
+               vbus-supply = <&reg_usb1_vbus>;
+
+               port {
+                       usb_dr_connector: endpoint {
+                               remote-endpoint = <&usb3_dwc>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
        srp-disable;
        usb-role-switch;
 
-       connector {
-               compatible = "gpio-usb-b-connector", "usb-b-connector";
-               id-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
-               label = "Type-C";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb_1_id>;
-               self-powered;
-               type = "micro";
-               vbus-supply = <&reg_usb1_vbus>;
+       port {
+               usb3_dwc: endpoint {
+                       remote-endpoint = <&usb_dr_connector>;
+               };
        };
 };
 
index 1264da6012f9296be3fd062cdcced456a6b7e997..39a550c1cd261dd516da26757bfa8eccd908b92a 100644 (file)
                dsp_reserved: dsp@92400000 {
                        reg = <0 0x92400000 0 0x2000000>;
                        no-map;
+                       status = "disabled";
                };
        };
 
                        clk: clock-controller@30380000 {
                                compatible = "fsl,imx8mp-ccm";
                                reg = <0x30380000 0x10000>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                                #clock-cells = <1>;
                                clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
                                         <&clk_ext3>, <&clk_ext4>;
                                                         <&clk IMX8MP_CLK_AUDIO_AXI>;
                                                assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>,
                                                                  <&clk IMX8MP_CLK_AUDIO_AXI_SRC>;
-                                               assigned-clock-parents =  <&clk IMX8MP_SYS_PLL1_800M>,
-                                                                         <&clk IMX8MP_SYS_PLL1_800M>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>;
                                                assigned-clock-rates = <400000000>,
                                                                       <600000000>;
                                        };
                                                clocks = <&clk IMX8MP_CLK_ML_AXI>,
                                                         <&clk IMX8MP_CLK_ML_AHB>,
                                                         <&clk IMX8MP_CLK_NPU_ROOT>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_ML_CORE>,
+                                                                 <&clk IMX8MP_CLK_ML_AXI>,
+                                                                 <&clk IMX8MP_CLK_ML_AHB>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>;
+                                               assigned-clock-rates = <800000000>,
+                                                                      <800000000>,
+                                                                      <300000000>;
                                        };
                                };
                        };
                                        compatible = "fsl,imx8mp-ldb";
                                        reg = <0x5c 0x4>, <0x128 0x4>;
                                        reg-names = "ldb", "lvds";
-                                       clocks = <&clk IMX8MP_CLK_MEDIA_LDB>;
+                                       clocks = <&clk IMX8MP_CLK_MEDIA_LDB_ROOT>;
                                        clock-names = "ldb";
                                        assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>;
                                        assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
                        interconnect-names = "g1", "g2", "vc8000e";
                };
 
+               npu: npu@38500000 {
+                       compatible = "vivante,gc";
+                       reg = <0x38500000 0x200000>;
+                       interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX8MP_CLK_NPU_ROOT>,
+                                <&clk IMX8MP_CLK_NPU_ROOT>,
+                                <&clk IMX8MP_CLK_ML_AXI>,
+                                <&clk IMX8MP_CLK_ML_AHB>;
+                       clock-names = "core", "shader", "bus", "reg";
+                       power-domains = <&pgc_mlmix>;
+               };
+
                gic: interrupt-controller@38800000 {
                        compatible = "arm,gic-v3";
                        reg = <0x38800000 0x10000>,
index 6376417e918c2083bb67c2f978d53602153d3cb9..d8cf1f27c3ec8a33b7ad527c1fc2b489747a2d84 100644 (file)
@@ -65,7 +65,7 @@
        status = "okay";
 
        tpm@0 {
-               compatible = "infineon,slb9670";
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                reg = <0>;
                spi-max-frequency = <43000000>;
        };
index a3b9d615a3b4076b8b346af41342d7b8b524d6d8..e34045d10a12fd8060b0bb5e512ca7d4eae95695 100644 (file)
@@ -39,7 +39,7 @@
 
        fan: gpio-fan {
                compatible = "gpio-fan";
-               gpio-fan,speed-map = <0 0 8600 1>;
+               gpio-fan,speed-map = <0 0>, <8600 1>;
                gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
                #cooling-cells = <2>;
                pinctrl-names = "default";
index 0d8def2766f50e5e37d65a5715aff9bd1e0bca76..b302daca4ce64e17f7fab22eaac666bd7229127a 100644 (file)
@@ -11,6 +11,7 @@
 / {
        model = "TQ-Systems GmbH i.MX8MQ TQMa8MQ on MBa8Mx";
        compatible = "tq,imx8mq-tqma8mq-mba8mx", "tq,imx8mq-tqma8mq", "fsl,imx8mq";
+       chassis-type = "embedded";
 
        aliases {
                eeprom0 = &eeprom3;
index 8439dd6b3935344a903762f29826a30ebc3e799a..69cb8676732ea5dc1f7bb204cdd029b022899f63 100644 (file)
 &lpuart0 {
        compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
        dmas = <&edma2 13 0 0>, <&edma2 12 0 1>;
+       dma-names = "rx","tx";
 };
 
 &lpuart1 {
        compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
        dmas = <&edma2 15 0 0>, <&edma2 14 0 1>;
+       dma-names = "rx","tx";
 };
 
 &lpuart2 {
        compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
        dmas = <&edma2 17 0 0>, <&edma2 16 0 1>;
+       dma-names = "rx","tx";
 };
 
 &lpuart3 {
        compatible = "fsl,imx8qm-lpuart", "fsl,imx8qxp-lpuart";
        dmas = <&edma2 19 0 0>, <&edma2 18 0 1>;
+       dma-names = "rx","tx";
 };
 
 &i2c0 {
index 99611729943cee89cef4162507c569a8fb54c65a..8360bb851ac03f4a2f55e727ba7b2ec39a9e9828 100644 (file)
@@ -31,7 +31,7 @@
        };
 
        gpio-sbu-mux {
-               compatible = "gpio-sbu-mux";
+               compatible = "nxp,cbdtu02043", "gpio-sbu-mux";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec_mux>;
                select-gpios = <&lsio_gpio5 9 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
+&dsp_reserved {
+       status = "okay";
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fec1>;
                interrupt-parent = <&lsio_gpio1>;
                interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 
-               port {
-                       typec_dr_sw: endpoint {
-                               remote-endpoint = <&usb3_drd_sw>;
-                       };
-               };
-
                usb_con1: connector {
                        compatible = "usb-c-connector";
                        label = "USB-C";
                                #address-cells = <1>;
                                #size-cells = <0>;
 
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec_dr_sw: endpoint {
+                                               remote-endpoint = <&usb3_drd_sw>;
+                                       };
+                               };
+
                                port@1 {
                                        reg = <1>;
+
                                        typec_con_ss: endpoint {
                                                remote-endpoint = <&usb3_data_ss>;
                                        };
diff --git a/src/arm64/freescale/imx8qxp-ss-vpu.dtsi b/src/arm64/freescale/imx8qxp-ss-vpu.dtsi
new file mode 100644 (file)
index 0000000..7894a3a
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR X11)
+/*
+ * Copyright 2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Alexander Stein
+ */
+
+&vpu_core0 {
+       reg = <0x2d040000 0x10000>;
+};
+
+&vpu_core1 {
+       reg = <0x2d050000 0x10000>;
+};
+
+/delete-node/ &mu2_m0;
+/delete-node/ &vpu_core2;
index c80c85a4b40591397955c62efa40e7afb90f6fdd..958267b3334031c0a01e27294f7c202a213e18f5 100644 (file)
@@ -48,7 +48,6 @@
                serial3 = &lpuart3;
                vpu-core0 = &vpu_core0;
                vpu-core1 = &vpu_core1;
-               vpu-core2 = &vpu_core2;
        };
 
        cpus {
                dsp_reserved: dsp@92400000 {
                        reg = <0 0x92400000 0 0x2000000>;
                        no-map;
+                       status = "disabled";
                };
 
                encoder_rpc: encoder-rpc@94400000 {
 };
 
 #include "imx8qxp-ss-img.dtsi"
+#include "imx8qxp-ss-vpu.dtsi"
 #include "imx8qxp-ss-adma.dtsi"
 #include "imx8qxp-ss-conn.dtsi"
 #include "imx8qxp-ss-lsio.dtsi"
index 2b9d47716f750ce0ae5857422ecc3c5449128d17..9921ea13ab4892eda6c9e046126af76debd5bb82 100644 (file)
@@ -76,6 +76,7 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               off-on-delay-us = <12000>;
                enable-active-high;
        };
 };
                >;
        };
 
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        MX93_PAD_SD1_CLK__USDHC1_CLK            0x15fe
-                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x13fe
-                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x13fe
-                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x13fe
-                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x13fe
-                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x13fe
-                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x13fe
-                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x13fe
-                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x13fe
-                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x13fe
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x400013fe
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x400013fe
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x400013fe
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x400013fe
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x400013fe
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x400013fe
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x400013fe
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x400013fe
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x400013fe
                        MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x15fe
                >;
        };
                >;
        };
 
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc2: usdhc2grp {
                fsl,pins = <
                        MX93_PAD_SD2_CLK__USDHC2_CLK            0x15fe
-                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x13fe
-                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x13fe
-                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x13fe
-                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x13fe
-                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x13fe
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x400013fe
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x400013fe
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x400013fe
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x400013fe
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x400013fe
                        MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
                >;
        };
diff --git a/src/arm64/freescale/imx93-tqma9352-mba93xxca.dts b/src/arm64/freescale/imx93-tqma9352-mba93xxca.dts
new file mode 100644 (file)
index 0000000..af795ec
--- /dev/null
@@ -0,0 +1,709 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Markus Niebel
+ * Author: Alexander Stein
+ */
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include <dt-bindings/pwm/pwm.h>
+
+#include "imx93-tqma9352.dtsi"
+
+/{
+       model = "TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit";
+       compatible = "tq,imx93-tqma9352-mba93xxca",
+                    "tq,imx93-tqma9352", "fsl,imx93";
+       chassis-type = "embedded";
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       aliases {
+               eeprom0 = &eeprom0;
+               rtc0 = &pcf85063;
+               rtc1 = &bbnsm_rtc;
+       };
+
+       backlight_lvds: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&tpm5 0 5000000 0>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+               power-supply = <&reg_12v0>;
+               enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pwmfan>;
+               fan-supply = <&reg_pwm_fan>;
+               #cooling-cells = <2>;
+               /* typical 25 kHz -> 40.000 nsec */
+               pwms = <&tpm6 0 40000 PWM_POLARITY_INVERTED>;
+               cooling-levels = <0 32 64 128 196 240>;
+               pulses-per-revolution = <2>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               status = "disabled";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               switch-a {
+                       label = "switcha";
+                       linux,code = <BTN_0>;
+                       gpios = <&expander0 6 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               switch-b {
+                       label = "switchb";
+                       linux,code = <BTN_1>;
+                       gpios = <&expander0 7 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&expander2 6 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&expander2 7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_3V3_MB";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_5V0_MB";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_12v0: regulator-12v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&expander1 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_mpcie_1v5: regulator-mpcie-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_1V5_MPCIE";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_mpcie_3v3: regulator-mpcie-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_3V3_MPCIE";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&expander0 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_pwm_fan: regulator-pwm-fan {
+               compatible = "regulator-fixed";
+               regulator-name = "FAN_PWR";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_12v0>;
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       trips {
+                               cpu_active0: trip-active0 {
+                                       temperature = <40000>;
+                                       hysteresis = <5000>;
+                                       type = "active";
+                               };
+
+                               cpu_active1: trip-active1 {
+                                       temperature = <48000>;
+                                       hysteresis = <3000>;
+                                       type = "active";
+                               };
+
+                               cpu_active2: trip-active2 {
+                                       temperature = <60000>;
+                                       hysteresis = <10000>;
+                                       type = "active";
+                               };
+                       };
+
+                       cooling-maps {
+                               map1 {
+                                       trip = <&cpu_active0>;
+                                       cooling-device = <&fan0 1 1>;
+                               };
+
+                               map2 {
+                                       trip = <&cpu_active1>;
+                                       cooling-device = <&fan0 2 2>;
+                               };
+
+                               map3 {
+                                       trip = <&cpu_active2>;
+                                       cooling-device = <&fan0 3 3>;
+                               };
+                       };
+               };
+       };
+};
+
+&adc1 {
+       status = "okay";
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy_eqos>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy_eqos: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_eqos_phy>;
+                       reset-gpios = <&expander1 0 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <500000>;
+                       reset-deassert-us = <50000>;
+                       interrupt-parent = <&gpio3>;
+                       interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
+                       enet-phy-lane-no-swap;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,dp83867-rxctrl-strap-quirk;
+                       ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy_fec>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy_fec: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_fec_phy>;
+                       reset-gpios = <&expander1 1 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <500000>;
+                       reset-deassert-us = <50000>;
+                       interrupt-parent = <&gpio3>;
+                       interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
+                       enet-phy-lane-no-swap;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,dp83867-rxctrl-strap-quirk;
+                       ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               };
+       };
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&gpio1 {
+       expander-irq-hog {
+               gpio-hog;
+               gpios = <12 GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "PEX_INT#";
+       };
+
+       tcpc-irq-hog {
+               gpio-hog;
+               gpios = <2 GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "USB_C_ALERT#";
+       };
+};
+
+&lpi2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       pinctrl-1 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       temperature-sensor@1c {
+               compatible = "nxp,se97b", "jedec,jc-42.4-temp";
+               reg = <0x1c>;
+       };
+
+       eeprom2: eeprom@54 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               reg = <0x54>;
+               pagesize = <16>;
+               vcc-supply = <&reg_3v3>;
+       };
+
+       expander0: gpio@70 {
+               compatible = "nxp,pca9538";
+               reg = <0x70>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pexp_irq>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+               vcc-supply = <&reg_3v3>;
+               gpio-line-names = "FAN_PWR_EN", "MPCIE_WAKE#",
+                                 "MPCIE_1V5_EN", "MPCIE_3V3_EN",
+                                 "MPCIE_PERST#", "MPCIE_WDISABLE#",
+                                 "BUTTON_A#", "BUTTON_B#";
+
+               mpcie-wake-hog {
+                       gpio-hog;
+                       gpios = <1 GPIO_ACTIVE_LOW>;
+                       input;
+                       line-name = "MPCIE_WAKE#";
+               };
+
+               /*
+                * Controls the mPCIE slot reset which is low active as
+                * reset signal. The output-low states, the signal is
+                * inactive, e.g. not in reset
+                */
+               mpcie_rst_hog: mpcie-rst-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_LOW>;
+                       output-low;
+                       line-name = "MPCIE_PERST#";
+               };
+
+               /*
+                * Controls the mPCIE slot WDISABLE pin which is low active
+                * as disable signal. The output-low states, the signal is
+                * inactive, e.g. not disabled
+                */
+               mpcie_wdisable_hog: mpcie-wdisable-hog {
+                       gpio-hog;
+                       gpios = <5 GPIO_ACTIVE_LOW>;
+                       output-low;
+                       line-name = "MPCIE_WDISABLE#";
+               };
+       };
+
+       expander1: gpio@71 {
+               compatible = "nxp,pca9538";
+               reg = <0x71>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_3v3>;
+               gpio-line-names = "ENET1_RESET#", "ENET2_RESET#",
+                                 "USB_RESET#", "",
+                                 "WLAN_PD#", "WLAN_W_DISABLE#",
+                                 "WLAN_PERST#", "12V_EN";
+
+               /*
+                * Controls the on board USB Hub reset which is low
+                * active as reset signal. The output-low states, the
+                * signal is inactive, e.g. no reset
+                */
+               usb-reset-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_LOW>;
+                       output-low;
+                       line-name = "USB_RESET#";
+               };
+
+               /*
+                * Controls the WiFi card PD pin which is low active
+                * as power down signal. The output-high states, the signal
+                * is active, e.g. card is powered down
+                */
+               wlan-pd-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "WLAN_PD#";
+               };
+
+               /*
+                * Controls the WiFi card disable pin which is low active
+                * as disable signal. The output-high states, the signal
+                * is active, e.g. card is disabled
+                */
+               wlan-wdisable-hog {
+                       gpio-hog;
+                       gpios = <5 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "WLAN_W_DISABLE#";
+               };
+
+               /*
+                * Controls the WiFi card reset pin which is low active
+                * as reset signal. The output-high states, the signal
+                * is active, e.g. card in reset
+                */
+               wlan-perst-hog {
+                       gpio-hog;
+                       gpios = <6 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "WLAN_PERST#";
+               };
+       };
+
+       expander2: gpio@72 {
+               compatible = "nxp,pca9538";
+               reg = <0x72>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_3v3>;
+               gpio-line-names = "LCD_RESET#", "LCD_PWR_EN",
+                                 "LCD_BLT_EN", "DP_EN",
+                                 "MIPI_CSI_EN", "MIPI_CSI_RST#",
+                                 "USER_LED1", "USER_LED2";
+       };
+};
+
+&lpi2c5 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpi2c5>;
+       pinctrl-1 = <&pinctrl_lpi2c5>;
+       status = "okay";
+};
+
+&lpspi6 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpspi6>;
+       pinctrl-1 = <&pinctrl_lpspi6>;
+       status = "okay";
+};
+
+&lpuart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&lpuart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       linux,rs485-enabled-at-boot-time;
+       status = "okay";
+};
+
+/* disabled per default, console for M33 */
+&lpuart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "disabled";
+};
+
+&lpuart6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart6>;
+       status = "okay";
+};
+
+&lpuart8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart8>;
+       status = "okay";
+};
+
+&tpm5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm5>;
+};
+
+&tpm6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm6>;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+       disable-wp;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                0x51e
+                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO              0x4000051e
+                       /* PD | FSEL_2 | DSE X6 */
+                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0          0x57e
+                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1          0x57e
+                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2          0x57e
+                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3          0x57e
+                       /* PD | FSEL_3 | DSE X6 */
+                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x5fe
+                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL    0x57e
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0          0x51e
+                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1          0x51e
+                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2          0x51e
+                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3          0x51e
+                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL    0x51e
+                       /* PD | FSEL_3 | DSE X3 */
+                       MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK  0x58e
+               >;
+       };
+
+       pinctrl_eqos_phy: eqosphygrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26          0x1306
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET2_MDC__ENET1_MDC                   0x51e
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x4000051e
+                       /* PD | FSEL_2 | DSE X6 */
+                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e
+                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x57e
+                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x57e
+                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x57e
+                       /* PD | FSEL_3 | DSE X6 */
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x5fe
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x51e
+                       MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x51e
+                       MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2             0x51e
+                       MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3             0x51e
+                       MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL       0x51e
+                       /* PD | FSEL_3 | DSE X3 */
+                       MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC             0x58e
+               >;
+       };
+
+       pinctrl_fec_phy: fecphygrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27          0x1306
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX       0x139e
+                       MX93_PAD_PDM_CLK__CAN1_TX               0x139e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__CAN2_TX             0x139e
+                       MX93_PAD_GPIO_IO27__CAN2_RX             0x139e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA          0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c5: lpi2c5grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO22__LPI2C5_SDA          0x40000b9e
+                       MX93_PAD_GPIO_IO23__LPI2C5_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_lpspi6: lpspi6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO00__LPSPI6_PCS0         0x3fe
+                       MX93_PAD_GPIO_IO01__LPSPI6_SIN          0x3fe
+                       MX93_PAD_GPIO_IO02__LPSPI6_SOUT         0x3fe
+                       MX93_PAD_GPIO_IO03__LPSPI6_SCK          0x3fe
+               >;
+       };
+
+       pinctrl_pexp_irq: pexpirqgrp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_TXC__GPIO1_IO12           0x1306
+               >;
+       };
+
+       pinctrl_pwmfan: pwmfangrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO09__GPIO2_IO09          0x1306
+               >;
+       };
+
+       pinctrl_tpm5: tpm5grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO06__TPM5_CH0            0x57e
+               >;
+       };
+
+       pinctrl_tpm6: tpm6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO08__TPM6_CH0            0x57e
+               >;
+       };
+
+       pinctrl_typec: typecgrp {
+               fsl,pins = <
+                       MX93_PAD_I2C2_SCL__GPIO1_IO02           0x1306
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX93_PAD_UART1_RXD__LPUART1_RX          0x31e
+                       MX93_PAD_UART1_TXD__LPUART1_TX          0x31e
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX93_PAD_UART2_TXD__LPUART2_TX          0x31e
+                       MX93_PAD_UART2_RXD__LPUART2_RX          0x31e
+                       MX93_PAD_SAI1_TXD0__LPUART2_RTS_B   0x51e
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO14__LPUART3_TX          0x31e
+                       MX93_PAD_GPIO_IO15__LPUART3_RX          0x31e
+               >;
+       };
+
+       pinctrl_uart6: uart6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO04__LPUART6_TX          0x31e
+                       MX93_PAD_GPIO_IO05__LPUART6_RX          0x31e
+               >;
+       };
+
+       pinctrl_uart8: uart8grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO12__LPUART8_TX          0x31e
+                       MX93_PAD_GPIO_IO13__LPUART8_RX          0x31e
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
+               >;
+       };
+
+       pinctrl_usdhc2_hs: usdhc2hsgrp {
+               fsl,pins = <
+                       /* HYS | PD | PU | FSEL_3 | DSE X5 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17be
+                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
+                       /* HYS | PD | PU | FSEL_3 | DSE X3 */
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x138e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x138e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x138e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x138e
+                       /* PD | PU | FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+               >;
+       };
+
+       pinctrl_usdhc2_uhs: usdhc2uhsgrp {
+               fsl,pins = <
+                       /* HYS | PD | PU | FSEL_3 | DSE X6 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17fe
+                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x139e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x139e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x139e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x139e
+                       /* PD | PU | FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+               >;
+       };
+};
index 3c5c67ebee5d306e47277439532c55b62d7a1c3c..eb3f4cfb69863e9221ec0a0a8e245a6321cfac5d 100644 (file)
@@ -18,6 +18,7 @@
        model = "TQ-Systems i.MX93 TQMa93xxLA on MBa93xxLA SBC";
        compatible = "tq,imx93-tqma9352-mba93xxla",
                     "tq,imx93-tqma9352", "fsl,imx93";
+       chassis-type = "embedded";
 
        chosen {
                stdout-path = &lpuart1;
index 34c0540276d1668a2ba568f76bbb0984af38bade..8f2e7c42ad6e8321a321b17ae2773c3de1aba5c7 100644 (file)
                status = "disabled";
        };
 
+       mqs1: mqs1 {
+               compatible = "fsl,imx93-mqs";
+               gpr = <&aonmix_ns_gpr>;
+               status = "disabled";
+       };
+
+       mqs2: mqs2 {
+               compatible = "fsl,imx93-mqs";
+               gpr = <&wakeupmix_gpr>;
+               status = "disabled";
+       };
+
        soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                                status = "disabled";
                        };
 
+                       i3c1: i3c-master@44330000 {
+                               compatible = "silvaco,i3c-master-v1";
+                               reg = <0x44330000 0x10000>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <3>;
+                               #size-cells = <0>;
+                               clocks = <&clk IMX93_CLK_BUS_AON>,
+                                        <&clk IMX93_CLK_I3C1_GATE>,
+                                        <&clk IMX93_CLK_I3C1_SLOW>;
+                               clock-names = "pclk", "fast_clk", "slow_clk";
+                               status = "disabled";
+                       };
+
                        lpi2c1: i2c@44340000 {
                                compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
                                reg = <0x44340000 0x10000>;
                                status = "disabled";
                        };
 
+                       sai1: sai@443b0000 {
+                               compatible = "fsl,imx93-sai";
+                               reg = <0x443b0000 0x10000>;
+                               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+                                        <&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>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
                        iomuxc: pinctrl@443c0000 {
                                compatible = "fsl,imx93-iomuxc";
                                reg = <0x443c0000 0x10000>;
                                #clock-cells = <1>;
                                clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>;
                                clock-names = "osc_32k", "osc_24m", "clk_ext1";
+                               assigned-clocks = <&clk IMX93_CLK_AUDIO_PLL>;
+                               assigned-clock-rates = <393216000>;
                                status = "okay";
                        };
 
                                };
                        };
 
-                       anatop: anatop@44480000 {
-                               compatible = "fsl,imx93-anatop", "syscon";
+                       clock-controller@44480000 {
+                               compatible = "fsl,imx93-anatop";
                                reg = <0x44480000 0x2000>;
+                               #clock-cells = <1>;
                        };
 
                        tmu: tmu@44482000 {
                                #thermal-sensor-cells = <1>;
                        };
 
+                       micfil: micfil@44520000 {
+                               compatible = "fsl,imx93-micfil";
+                               reg = <0x44520000 0x10000>;
+                               interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX93_CLK_PDM_IPG>,
+                                        <&clk IMX93_CLK_PDM_GATE>,
+                                        <&clk IMX93_CLK_AUDIO_PLL>;
+                               clock-names = "ipg_clk", "ipg_clk_app", "pll8k";
+                               dmas = <&edma1 29 0 5>;
+                               dma-names = "rx";
+                               status = "disabled";
+                       };
 
                        adc1: adc@44530000 {
                                compatible = "nxp,imx93-adc";
                                compatible = "fsl,imx93-edma4";
                                reg = <0x42000000 0x210000>;
                                #dma-cells = <3>;
-                               shared-interrupt;
                                dma-channels = <64>;
                                interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
                                status = "disabled";
                        };
 
+                       i3c2: i3c-master@42520000 {
+                               compatible = "silvaco,i3c-master-v1";
+                               reg = <0x42520000 0x10000>;
+                               interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <3>;
+                               #size-cells = <0>;
+                               clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
+                                        <&clk IMX93_CLK_I3C2_GATE>,
+                                        <&clk IMX93_CLK_I3C2_SLOW>;
+                               clock-names = "pclk", "fast_clk", "slow_clk";
+                               status = "disabled";
+                       };
+
                        lpi2c3: i2c@42530000 {
                                compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
                                reg = <0x42530000 0x10000>;
                                status = "disabled";
                        };
 
+                       sai2: sai@42650000 {
+                               compatible = "fsl,imx93-sai";
+                               reg = <0x42650000 0x10000>;
+                               interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX93_CLK_SAI2_IPG>, <&clk IMX93_CLK_DUMMY>,
+                                        <&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>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       sai3: sai@42660000 {
+                               compatible = "fsl,imx93-sai";
+                               reg = <0x42660000 0x10000>;
+                               interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX93_CLK_SAI3_IPG>, <&clk IMX93_CLK_DUMMY>,
+                                        <&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>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       xcvr: xcvr@42680000 {
+                               compatible = "fsl,imx93-xcvr";
+                               reg = <0x42680000 0x800>,
+                                     <0x42680800 0x400>,
+                                     <0x42680c00 0x080>,
+                                     <0x42680e00 0x080>;
+                               reg-names = "ram", "regs", "rxfifo", "txfifo";
+                               interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
+                                        <&clk IMX93_CLK_SPDIF_GATE>,
+                                        <&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>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
                        lpuart7: serial@42690000 {
                                compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
                                reg = <0x42690000 0x1000>;
                                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 1>, <&edma2 89 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_USDHC1_GATE>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <8>;
-                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_USDHC2_GATE>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
-                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_USDHC3_GATE>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <4>;
-                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                status = "disabled";
                        };
index 970047f2dabd51810b06710906b9c38fbcb96a41..299c4ab630e850c99c4c19586acc95f3e4179c21 100644 (file)
 / {
        spmi: spmi@fff24000 {
                compatible = "hisilicon,kirin970-spmi-controller";
+               reg = <0x0 0xfff24000 0x0 0x1000>;
                #address-cells = <2>;
                #size-cells = <0>;
-               status = "okay";
-               reg = <0x0 0xfff24000 0x0 0x1000>;
                hisilicon,spmi-channel = <2>;
 
                pmic: pmic@0 {
@@ -25,9 +24,6 @@
                        gpios = <&gpio28 0 0>;
 
                        regulators {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
                                ldo3: ldo3 { /* HDMI */
                                        regulator-name = "ldo3";
                                        regulator-min-microvolt = <1500000>;
index d3adb6a130aef4ed0d05d7100eb1f2f48ac8e28b..76aafa172eb013ff22e601f1fcc9f1b07d960110 100644 (file)
                };
        };
 
+       firmware {
+               svc {
+                       compatible = "intel,agilex-svc";
+                       method = "smc";
+                       memory-region = <&service_reserved>;
+
+                       fpga_mgr: fpga-mgr {
+                               compatible = "intel,agilex-soc-fpga-mgr";
+                       };
+               };
+       };
+
+       fpga-region {
+               compatible = "fpga-region";
+               #address-cells = <0x2>;
+               #size-cells = <0x2>;
+               fpga-mgr = <&fpga_mgr>;
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
                compatible = "usb-nop-xceiv";
        };
 
-       soc {
+       soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
                interrupt-parent = <&intc>;
                ranges = <0 0 0 0xffffffff>;
 
-               base_fpga_region {
-                       #address-cells = <0x2>;
-                       #size-cells = <0x2>;
-                       compatible = "fpga-region";
-                       fpga-mgr = <&fpga_mgr>;
-               };
-
                clkmgr: clock-controller@ffd10000 {
                        compatible = "intel,agilex-clkmgr";
                        reg = <0xffd10000 0x1000>;
                        pinctrl-single,function-mask = <0x0000000f>;
                };
 
-               pinctrl1: pinconf@ffd13100 {
+               pinctrl1: pinctrl@ffd13100 {
                        compatible = "pinctrl-single";
                        #pinctrl-cells = <1>;
                        reg = <0xffd13100 0x20>;
 
                        status = "disabled";
                };
-
-               firmware {
-                       svc {
-                               compatible = "intel,agilex-svc";
-                               method = "smc";
-                               memory-region = <&service_reserved>;
-
-                               fpga_mgr: fpga-mgr {
-                                       compatible = "intel,agilex-soc-fpga-mgr";
-                               };
-                       };
-               };
        };
 };
index dcdaf706495336a4f4fda5a35ad81b9e1ec9b758..d66d425e45b7d9f7035115c74ea829c53640502c 100644 (file)
@@ -73,7 +73,7 @@
                ranges;
                #interrupt-cells = <3>;
                #address-cells = <2>;
-               #size-cells =<2>;
+               #size-cells = <2>;
                interrupt-controller;
                #redistributor-regions = <1>;
                redistributor-stride = <0x0 0x20000>;
                        num-cs = <4>;
                        clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
                        dmas = <&dmac0 2>, <&dmac0 3>;
-                       dma-names ="tx", "rx";
+                       dma-names = "tx", "rx";
                        status = "disabled";
 
                };
index 1a32840c74e09431ccd2a3c1554ff64b5039a3e4..d22de06e9839615ab7de26d2e3316c4fba135f83 100644 (file)
@@ -26,7 +26,7 @@
                reg = <0 0x80000000 0 0>;
        };
 
-       soc {
+       soc@0 {
                bus@80000000 {
                        compatible = "simple-bus";
                        reg = <0x80000000 0x60000000>,
index 053690657675b67b6306c5e4d4783959f2a46990..ad99aefeb185a1b9a37b6186e9e46fe8897c496c 100644 (file)
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <2>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index 5ddfdff37c25c08dd44a082f16af0a221c8d794a..2d70a92c20900ee3edf6d8b94b19376a9edba236 100644 (file)
                reg = <0 0x80000000 0 0>;
        };
 
-       soc {
+       soc@0 {
                sdram_edac: memory-controller@f87f8000 {
                        compatible = "snps,ddrc-3.80a";
                        reg = <0xf87f8000 0x400>;
                        interrupts = <0 175 4>;
-                       status = "okay";
                };
        };
 };
@@ -91,8 +90,6 @@
                spi-max-frequency = <100000000>;
 
                m25p,fast-read;
-               cdns,page-size = <256>;
-               cdns,block-size = <16>;
                cdns,read-delay = <2>;
                cdns,tshsl-ns = <50>;
                cdns,tsd2d-ns = <50>;
index 48ec4ebec0a83e65bb4978e2f2ffa9cb7aba873c..b864ffa74ea8b6ff72afbd698eab4d30ad990a37 100644 (file)
        amba {
                #address-cells = <2>;
                #size-cells = <1>;
-               #interrupt-cells = <3>;
 
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
index 3869460aa5dcb5da3a3fb32f8e0df6903b88862c..996fb39bb50c1f2074ddd5ac03f191091920c96b 100644 (file)
        amba {
                #address-cells = <2>;
                #size-cells = <1>;
-               #interrupt-cells = <3>;
 
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
diff --git a/src/arm64/marvell/ac5x-rd-carrier-cn9131.dts b/src/arm64/marvell/ac5x-rd-carrier-cn9131.dts
new file mode 100644 (file)
index 0000000..2a0b070
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the AC5X RD Type 7 Com Express carrier board,
+ * Utilizing the CN913x COM Express CPU module board.
+ * This specific carrier board in this mode of operation (external)
+ * only maintains a PCIe link with the CPU module,
+ * which does not require any special DTS definitions.
+ *
+ * AC5X RD works here in external mode (switch selectable at the back of the
+ * board), and connect via an external cable a kit
+ * which would allow it to use an external CN9131 CPU COM Express module,
+ * mounted on top of an interposer kit.
+ *
+ * So in this case, once the switch is set to external mode as explained above,
+ * the AC5X RD becomes part of the carrier solution.
+ *
+ * When the board boots in the external CPU mode, the internal CPU is disabled,
+ * and only the switch portion of the SOC acts as a PCIe end-point, Hence there
+ * is no need to describe this internal (disabled CPU) in the device tree.
+ *
+ * There is no CPU booting in this mode on the carrier, only on the
+ * CN9131 COM Express CPU module.
+ * What runs the Linux is the CN9131 on the COM Express CPU module,
+ * And it accesses the switch end-point on the AC5X RD portion of the carrier
+ * via PCIe.
+ */
+
+#include "cn9131-db-comexpress.dtsi"
+#include "ac5x-rd-carrier.dtsi"
+
+/ {
+       model = "Marvell Armada AC5X RD COM EXPRESS type 7 carrier board with CN9131 CPU module";
+       compatible = "marvell,cn9131-ac5x-carrier", "marvell,rd-ac5x-carrier",
+                       "marvell,cn9131-cpu-module", "marvell,cn9131",
+                       "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x2 0x00000000>;
+       };
+
+};
diff --git a/src/arm64/marvell/ac5x-rd-carrier.dtsi b/src/arm64/marvell/ac5x-rd-carrier.dtsi
new file mode 100644 (file)
index 0000000..f98629a
--- /dev/null
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the AC5X RD Type 7 Com Express carrier board,
+ * This specific board in external mode (see below) only maintains
+ * a PCIe link with the COM Express CPU module, which does not
+ * require any special DTS definitions.
+ *
+ * AC5X RD can either work as you would expect, as a complete standalone
+ * box using the internal CPU, or you can move the switch on the back of
+ * the box to "external" mode, and connect via an external cable a kit
+ * which would allow it to use an external CPU COM Express module,
+ * mounted on top of an interposer kit.
+ *
+ * So in this case, once the switch is set to external mode as explained above,
+ * the AC5X RD becomes part of the carrier solution.
+ * This is a development/reference solution, not a full commercial solution,
+ * hence it was designed with the flexibility to be configured in different
+ * modes of operation.
+ *
+ * When the board boots in the external CPU mode, the internal CPU is disabled,
+ * and only the switch portion of the SOC acts as a PCIe end-point, Hence there
+ * is no need to describe this internal (disabled CPU) in the device tree.
+ *
+ * There is no CPU booting in this mode on the carrier,
+ * only on the COM Express CPU module.
+ */
+
+/ {
+       model = "Marvell Armada AC5X RD COM EXPRESS type 7 carrier board";
+       compatible = "marvell,rd-ac5x-carrier";
+
+};
index f9abef8dcc94891979d60b7b69029e3a9ede24d9..870bb380a40a67482586268eeac2e29a03f05abd 100644 (file)
 
        reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
 
-       ports {
-               switch0port1: port@1 {
+       ethernet-ports {
+               switch0port1: ethernet-port@1 {
                        reg = <1>;
                        label = "lan0";
                        phy-handle = <&switch0phy0>;
                };
 
-               switch0port2: port@2 {
+               switch0port2: ethernet-port@2 {
                        reg = <2>;
                        label = "lan1";
                        phy-handle = <&switch0phy1>;
                };
 
-               switch0port3: port@3 {
+               switch0port3: ethernet-port@3 {
                        reg = <3>;
                        label = "lan2";
                        phy-handle = <&switch0phy2>;
                };
 
-               switch0port4: port@4 {
+               switch0port4: ethernet-port@4 {
                        reg = <4>;
                        label = "lan3";
                        phy-handle = <&switch0phy3>;
                };
 
-               switch0port5: port@5 {
+               switch0port5: ethernet-port@5 {
                        reg = <5>;
                        label = "wan";
                        phy-handle = <&extphy>;
        };
 
        mdio {
-               switch0phy3: switch0phy3@14 {
+               switch0phy3: ethernet-phy@14 {
                        reg = <0x14>;
                };
        };
index 49cbdb55b4b366b6ad164242cee6cc9cba97811a..fed2dcecb323f0541d076988164f12e68ed37fcc 100644 (file)
 };
 
 &mdio {
-       switch0: switch0@1 {
+       switch0: ethernet-switch@1 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <1>;
 
                dsa,member = <0 0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0port0: port@0 {
+                       switch0port0: ethernet-port@0 {
                                reg = <0>;
                                label = "cpu";
                                ethernet = <&eth0>;
                                };
                        };
 
-                       switch0port1: port@1 {
+                       switch0port1: ethernet-port@1 {
                                reg = <1>;
                                label = "wan";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       switch0port2: port@2 {
+                       switch0port2: ethernet-port@2 {
                                reg = <2>;
                                label = "lan0";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       switch0port3: port@3 {
+                       switch0port3: ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                                phy-handle = <&switch0phy2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
                };
index b1b45b4fa9d4a33966bf88686bc01dc24ee737c1..63fbc83521616afc741d4d7e22a6fe00aaae9292 100644 (file)
 };
 
 &mdio {
-       switch0: switch0@1 {
+       switch0: ethernet-switch@1 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <1>;
 
                dsa,member = <0 0>;
 
-               ports: ports {
+               ports: ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "cpu";
                                ethernet = <&eth0>;
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "wan";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan0";
                                phy-handle = <&switch0phy1>;
                                nvmem-cell-names = "mac-address";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                                phy-handle = <&switch0phy2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
                };
index 9eab2bb221348aaa4c04e0a4cca26e52907383b0..f1a9f223435919f05bcfaea45f73321aec313be9 100644 (file)
                compatible = "microchip,mcp7940x";
                reg = <0x6f>;
                interrupt-parent = <&gpiosb>;
-               interrupts = <5 0>; /* GPIO2_5 */
+               interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO2_5 */
        };
 };
 
                reg = <1>;
        };
 
-       /* switch nodes are enabled by U-Boot if modules are present */
+       /*
+        * NOTE: switch nodes are enabled by U-Boot if modules are present
+        * DO NOT change this node name (switch0@10) even if it is not following
+        * conventions! Deployed U-Boot binaries are explicitly looking for
+        * this node in order to augment the device tree!
+        * Also do not touch the "ports" or "port@n" nodes. These are also ABI.
+        */
        switch0@10 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x10>;
                dsa,member = <0 0>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1: switch0phy1@1 {
+                       switch0phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy2: switch0phy2@2 {
+                       switch0phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy3: switch0phy3@3 {
+                       switch0phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy4: switch0phy4@4 {
+                       switch0phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy5: switch0phy5@5 {
+                       switch0phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy6: switch0phy6@6 {
+                       switch0phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy7: switch0phy7@7 {
+                       switch0phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy8: switch0phy8@8 {
+                       switch0phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch0@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 0>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1_topaz: switch0phy1@11 {
+                       switch0phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch0phy2_topaz: switch0phy2@12 {
+                       switch0phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch0phy3_topaz: switch0phy3@13 {
+                       switch0phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch0phy4_topaz: switch0phy4@14 {
+                       switch0phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch1@11 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x11>;
                dsa,member = <0 1>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch1phy1: switch1phy1@1 {
+                       switch1phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch1phy2: switch1phy2@2 {
+                       switch1phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch1phy3: switch1phy3@3 {
+                       switch1phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch1phy4: switch1phy4@4 {
+                       switch1phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch1phy5: switch1phy5@5 {
+                       switch1phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch1phy6: switch1phy6@6 {
+                       switch1phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch1phy7: switch1phy7@7 {
+                       switch1phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch1phy8: switch1phy8@8 {
+                       switch1phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch1@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 1>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch1phy1_topaz: switch1phy1@11 {
+                       switch1phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch1phy2_topaz: switch1phy2@12 {
+                       switch1phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch1phy3_topaz: switch1phy3@13 {
+                       switch1phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch1phy4_topaz: switch1phy4@14 {
+                       switch1phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch2@12 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x12>;
                dsa,member = <0 2>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch2phy1: switch2phy1@1 {
+                       switch2phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch2phy2: switch2phy2@2 {
+                       switch2phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch2phy3: switch2phy3@3 {
+                       switch2phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch2phy4: switch2phy4@4 {
+                       switch2phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch2phy5: switch2phy5@5 {
+                       switch2phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch2phy6: switch2phy6@6 {
+                       switch2phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch2phy7: switch2phy7@7 {
+                       switch2phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch2phy8: switch2phy8@8 {
+                       switch2phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch2@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 2>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch2phy1_topaz: switch2phy1@11 {
+                       switch2phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch2phy2_topaz: switch2phy2@12 {
+                       switch2phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch2phy3_topaz: switch2phy3@13 {
+                       switch2phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch2phy4_topaz: switch2phy4@14 {
+                       switch2phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
index 48202810bf78629f66c15b7d368b2fdaf373f36f..40b7ee7ead72e2c98800f5d594a293eef500056d 100644 (file)
        };
 
        /* 88E6141 Topaz switch */
-       switch: switch@3 {
+       switch: ethernet-switch@3 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <3>;
 
                pinctrl-names = "default";
                interrupt-parent = <&cp0_gpio1>;
                interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       swport1: port@1 {
+                       swport1: ethernet-port@1 {
                                reg = <1>;
                                label = "lan0";
                                phy-handle = <&swphy1>;
                        };
 
-                       swport2: port@2 {
+                       swport2: ethernet-port@2 {
                                reg = <2>;
                                label = "lan1";
                                phy-handle = <&swphy2>;
                        };
 
-                       swport3: port@3 {
+                       swport3: ethernet-port@3 {
                                reg = <3>;
                                label = "lan2";
                                phy-handle = <&swphy3>;
                        };
 
-                       swport4: port@4 {
+                       swport4: ethernet-port@4 {
                                reg = <4>;
                                label = "lan3";
                                phy-handle = <&swphy4>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "cpu";
                                ethernet = <&cp0_eth1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       swphy1: swphy1@17 {
+                       swphy1: ethernet-phy@17 {
                                reg = <17>;
                        };
 
-                       swphy2: swphy2@18 {
+                       swphy2: ethernet-phy@18 {
                                reg = <18>;
                        };
 
-                       swphy3: swphy3@19 {
+                       swphy3: ethernet-phy@19 {
                                reg = <19>;
                        };
 
-                       swphy4: swphy4@20 {
+                       swphy4: ethernet-phy@20 {
                                reg = <20>;
                        };
                };
index 4125202028c8569e67707433220c7ba3f9152119..67892f0d28633eb3eca9f40016609103f29c9aeb 100644 (file)
                reset-deassert-us = <10000>;
        };
 
-       switch0: switch0@4 {
+       switch0: ethernet-switch@4 {
                compatible = "marvell,mv88e6085";
                reg = <4>;
                pinctrl-names = "default";
                pinctrl-0 = <&cp1_switch_reset_pins>;
                reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan2";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan1";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan4";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan3";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "cpu";
                                ethernet = <&cp1_eth2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch0phy3: switch0phy3@14 {
+                       switch0phy3: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
index 2c920e22cec2b52dd983f2d20812e7fe80a0c379..7ec7c789d87eff436c4f7362e417c71e2033a5b1 100644 (file)
 
                        odmi: odmi@300000 {
                                compatible = "marvell,odmi-controller";
-                               interrupt-controller;
                                msi-controller;
                                marvell,odmi-frames = <4>;
                                reg = <0x300000 0x4000>,
index 47d45ff3d6f578eeb0c3aaa62126f9c3b3af1b33..6fcc34f7b46474545404641c6a775f7dbeca3b82 100644 (file)
                reg = <0>;
        };
 
-       switch6: switch0@6 {
+       switch6: ethernet-switch@6 {
                /* Actual device is MV88E6393X */
                compatible = "marvell,mv88e6190";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <6>;
                interrupt-parent = <&cp0_gpio1>;
                interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
 
                dsa,member = <0 0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "p1";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "p2";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "p3";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "p4";
                                phy-handle = <&switch0phy4>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "p5";
                                phy-handle = <&switch0phy5>;
                        };
 
-                       port@6 {
+                       ethernet-port@6 {
                                reg = <6>;
                                label = "p6";
                                phy-handle = <&switch0phy6>;
                        };
 
-                       port@7 {
+                       ethernet-port@7 {
                                reg = <7>;
                                label = "p7";
                                phy-handle = <&switch0phy7>;
                        };
 
-                       port@8 {
+                       ethernet-port@8 {
                                reg = <8>;
                                label = "p8";
                                phy-handle = <&switch0phy8>;
                        };
 
-                       port@9 {
+                       ethernet-port@9 {
                                reg = <9>;
                                label = "p9";
                                phy-mode = "10gbase-r";
                                managed = "in-band-status";
                        };
 
-                       port@a {
+                       ethernet-port@a {
                                reg = <10>;
                                ethernet = <&cp0_eth0>;
                                phy-mode = "10gbase-r";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1: switch0phy1@1 {
+                       switch0phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy2: switch0phy2@2 {
+                       switch0phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy3: switch0phy3@3 {
+                       switch0phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy4: switch0phy4@4 {
+                       switch0phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy5: switch0phy5@5 {
+                       switch0phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy6: switch0phy6@6 {
+                       switch0phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy7: switch0phy7@7 {
+                       switch0phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy8: switch0phy8@8 {
+                       switch0phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
diff --git a/src/arm64/marvell/cn9130-db-comexpress.dtsi b/src/arm64/marvell/cn9130-db-comexpress.dtsi
new file mode 100644 (file)
index 0000000..028496e
--- /dev/null
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the CN9130-DB Com Express CPU module board.
+ */
+
+#include "cn9130-db.dtsi"
+
+/ {
+       model = "Marvell Armada CN9130-DB COM EXPRESS type 7 CPU module board";
+       compatible = "marvell,cn9130-cpu-module", "marvell,cn9130",
+                    "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+};
+
+&ap0_reg_sd_vccq {
+       regulator-max-microvolt = <1800000>;
+       states = <1800000 0x1 1800000 0x0>;
+       /delete-property/ gpios;
+};
+
+&cp0_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_usb3_vbus1 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_sd_vcc {
+       status = "disabled";
+};
+
+&cp0_reg_sd_vccq {
+       status = "disabled";
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_eth0 {
+       status = "disabled";
+};
+
+&cp0_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "rgmii-id";
+};
+
+&cp0_eth2 {
+       status = "disabled";
+};
+
+&cp0_mdio {
+       status = "okay";
+       pinctrl-0 = <&cp0_ge_mdio_pins>;
+       phy0: ethernet-phy@0 {
+               status = "okay";
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               cp0_ge_mdio_pins: ge-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+       };
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_spi1 {
+       status = "okay";
+};
+
+&cp0_usb3_0 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy0>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp0_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy1>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
diff --git a/src/arm64/marvell/cn9131-db-comexpress.dtsi b/src/arm64/marvell/cn9131-db-comexpress.dtsi
new file mode 100644 (file)
index 0000000..6f3914b
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the CN9131-DB Com Express CPU module board.
+ */
+
+#include "cn9131-db.dtsi"
+
+/ {
+       model = "Marvell Armada CN9131-DB COM EXPRESS type 7 CPU module board";
+       compatible = "marvell,cn9131-cpu-module", "marvell,cn9131", "marvell,cn9130",
+                    "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+};
+
+&ap0_reg_sd_vccq {
+       regulator-max-microvolt = <1800000>;
+       states = <1800000 0x1 1800000 0x0>;
+       /delete-property/ gpios;
+};
+
+&cp0_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_usb3_vbus1 {
+       /delete-property/ gpio;
+};
+
+&cp1_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_sd_vcc {
+       status = "disabled";
+};
+
+&cp0_reg_sd_vccq {
+       status = "disabled";
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_eth0 {
+       status = "disabled";
+};
+
+&cp0_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "rgmii-id";
+};
+
+&cp0_eth2 {
+       status = "disabled";
+};
+
+&cp0_mdio {
+       status = "okay";
+       pinctrl-0 = <&cp0_ge_mdio_pins>;
+       phy0: ethernet-phy@0 {
+               status = "okay";
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               cp0_ge_mdio_pins: ge-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+       };
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_spi1 {
+       status = "okay";
+};
+
+&cp0_usb3_0 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy0>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp0_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy1>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp1_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp1_usb3_0_phy0>;
+       /* Generic PHY, providing serdes lanes */
+       phys = <&cp1_comphy3 1>;
+       phy-names = "usb";
+};
index b605313bed99d155da37712d549dc29841cdd275..a1b96013f8141a00ef9d208d822e9c29da2beec9 100644 (file)
@@ -8,8 +8,6 @@
        pmic: pmic {
                compatible = "mediatek,mt6358";
                interrupt-controller;
-               interrupt-parent = <&pio>;
-               interrupts = <182 IRQ_TYPE_LEVEL_HIGH>;
                #interrupt-cells = <2>;
 
                mt6358codec: mt6358codec {
                        };
 
                        mt6358_vrf12_reg: ldo_vrf12 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vrf12";
                                regulator-min-microvolt = <1200000>;
                                regulator-max-microvolt = <1200000>;
                        };
 
                        mt6358_vio18_reg: ldo_vio18 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vio18";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                        };
 
                        mt6358_vcamio_reg: ldo_vcamio {
-                               compatible = "regulator-fixed";
                                regulator-name = "vcamio";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                        };
 
                        mt6358_vcn18_reg: ldo_vcn18 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vcn18";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                        };
 
                        mt6358_vfe28_reg: ldo_vfe28 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vfe28";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
                        };
 
                        mt6358_vcn28_reg: ldo_vcn28 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vcn28";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
                        };
 
                        mt6358_vxo22_reg: ldo_vxo22 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vxo22";
                                regulator-min-microvolt = <2200000>;
                                regulator-max-microvolt = <2200000>;
                        };
 
                        mt6358_vaux18_reg: ldo_vaux18 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vaux18";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                        };
 
                        mt6358_vbif28_reg: ldo_vbif28 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vbif28";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
                        };
 
                        mt6358_vio28_reg: ldo_vio28 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vio28";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
                        };
 
                        mt6358_va12_reg: ldo_va12 {
-                               compatible = "regulator-fixed";
                                regulator-name = "va12";
                                regulator-min-microvolt = <1200000>;
                                regulator-max-microvolt = <1200000>;
                        };
 
                        mt6358_vrf18_reg: ldo_vrf18 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vrf18";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                                regulator-enable-ramp-delay = <120>;
                        };
 
-                       mt6358_vcn33_bt_reg: ldo_vcn33_bt {
-                               regulator-name = "vcn33_bt";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3500000>;
-                               regulator-enable-ramp-delay = <270>;
-                       };
-
-                       mt6358_vcn33_wifi_reg: ldo_vcn33_wifi {
-                               regulator-name = "vcn33_wifi";
+                       mt6358_vcn33_reg: ldo_vcn33 {
+                               regulator-name = "vcn33";
                                regulator-min-microvolt = <3300000>;
                                regulator-max-microvolt = <3500000>;
                                regulator-enable-ramp-delay = <270>;
                        };
 
                        mt6358_vaud28_reg: ldo_vaud28 {
-                               compatible = "regulator-fixed";
                                regulator-name = "vaud28";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
index c46682150e502abb2b62cc1d3170e81d475cf1b0..a1f42048dcc70396fa416055c49f368d27d1c070 100644 (file)
                        reg = <0>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
-                       interrupt-parent = <&pio>;
-                       interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&pio 53 IRQ_TYPE_LEVEL_HIGH>;
                        reset-gpios = <&pio 54 0>;
 
                        ports {
index b876e501216be8e19176d458a06183749015bc70..d06d4af43cbffba96f5702a133734994a5201120 100644 (file)
                reg = <31>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               interrupt-parent = <&pio>;
-               interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts-extended = <&pio 66 IRQ_TYPE_LEVEL_HIGH>;
                reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
        };
 };
index bdcd35cecad908bc1efb08eb7d31b9bf86d79e97..90cbbc18a4834e3937b80b892c2396e4c45748b8 100644 (file)
@@ -13,8 +13,7 @@
        touchscreen2: touchscreen@34 {
                compatible = "melfas,mip4_ts";
                reg = <0x34>;
-               interrupt-parent = <&pio>;
-               interrupts = <88 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 88 IRQ_TYPE_LEVEL_LOW>;
        };
 
        /*
@@ -26,8 +25,7 @@
                compatible = "hid-over-i2c";
                reg = <0x20>;
                hid-descr-addr = <0x0020>;
-               interrupt-parent = <&pio>;
-               interrupts = <88 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 88 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
@@ -39,8 +37,7 @@
         */
        trackpad2: trackpad@2c {
                compatible = "hid-over-i2c";
-               interrupt-parent = <&pio>;
-               interrupts = <117 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 117 IRQ_TYPE_LEVEL_LOW>;
                reg = <0x2c>;
                hid-descr-addr = <0x0020>;
                wakeup-source;
index 111495622cacdc6c05b590ee273e331a97af3ed6..8d614ac2c58ed8262e468a9239b5692f767c6ac2 100644 (file)
                reg = <0x1a>;
                avdd-supply = <&mt6397_vgp1_reg>;
                cpvdd-supply = <&mt6397_vcama_reg>;
-               interrupt-parent = <&pio>;
-               interrupts = <3 IRQ_TYPE_EDGE_BOTH>;
+               interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_BOTH>;
                pinctrl-names = "default";
                pinctrl-0 = <&rt5650_irq>;
                #sound-dai-cells = <1>;
        da9211: da9211@68 {
                compatible = "dlg,da9211";
                reg = <0x68>;
-               interrupt-parent = <&pio>;
-               interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 15 IRQ_TYPE_LEVEL_LOW>;
 
                regulators {
                        da9211_vcpu_reg: BUCKA {
        touchscreen: touchscreen@10 {
                compatible = "elan,ekth3500";
                reg = <0x10>;
-               interrupt-parent = <&pio>;
-               interrupts = <88 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 88 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
 
        trackpad: trackpad@15 {
                compatible = "elan,ekth3000";
-               interrupt-parent = <&pio>;
-               interrupts = <117 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 117 IRQ_TYPE_LEVEL_LOW>;
                reg = <0x15>;
                vcc-supply = <&mt6397_vgp6_reg>;
                wakeup-source;
        btmrvl: btmrvl@2 {
                compatible = "marvell,sd8897-bt";
                reg = <2>;
-               interrupt-parent = <&pio>;
-               interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 119 IRQ_TYPE_LEVEL_LOW>;
                marvell,wakeup-pin = /bits/ 16 <0x0d>;
                marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
        };
        mwifiex: mwifiex@1 {
                compatible = "marvell,sd8897";
                reg = <1>;
-               interrupt-parent = <&pio>;
-               interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 38 IRQ_TYPE_LEVEL_LOW>;
                marvell,wakeup-pin = <3>;
        };
 };
                compatible = "mediatek,mt6397";
                #address-cells = <1>;
                #size-cells = <1>;
-               interrupt-parent = <&pio>;
-               interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-controller;
                #interrupt-cells = <2>;
 
                compatible = "google,cros-ec-spi";
                reg = <0x0>;
                spi-max-frequency = <12000000>;
-               interrupt-parent = <&pio>;
-               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 0 IRQ_TYPE_LEVEL_LOW>;
                google,cros-ec-spi-msg-delay = <500>;
 
                i2c_tunnel: i2c-tunnel0 {
index d258c80213b26420bb8c4590e35153f2fb4c9db0..0e5c628d1ec3e00062f3dafc815e0384614fc753 100644 (file)
 
        pmic: pmic {
                compatible = "mediatek,mt6397";
-               interrupt-parent = <&pio>;
-               interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-controller;
                #interrupt-cells = <2>;
 
index c47d7d900f28360ed03af8995246c6a689706ad0..cac4cd0a032012be0e004eb83baa6515f0f961c0 100644 (file)
                        #clock-cells = <1>;
                };
 
-               vcodec_dec: vcodec@16000000 {
+               vcodec_dec: vcodec@16020000 {
                        compatible = "mediatek,mt8173-vcodec-dec";
-                       reg = <0 0x16000000 0 0x100>,   /* VDEC_SYS */
-                             <0 0x16020000 0 0x1000>,  /* VDEC_MISC */
+                       reg = <0 0x16020000 0 0x1000>,  /* VDEC_MISC */
                              <0 0x16021000 0 0x800>,   /* VDEC_LD */
                              <0 0x16021800 0 0x800>,   /* VDEC_TOP */
                              <0 0x16022000 0 0x1000>,  /* VDEC_CM */
                              <0 0x16027000 0 0x800>,   /* VDEC_HWQ */
                              <0 0x16027800 0 0x800>,   /* VDEC_HWB */
                              <0 0x16028400 0 0x400>;   /* VDEC_HWG */
+                       reg-names = "misc", "ld", "top", "cm", "ad", "av", "pp",
+                                   "hwd", "hwq", "hwb", "hwg";
                        interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
                        iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
                                 <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
                                 <&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
                                 <&iommu M4U_PORT_HW_VDEC_VLD2_EXT>;
                        mediatek,vpu = <&vpu>;
+                       mediatek,vdecsys = <&vdecsys>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_VDEC>;
                        clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>,
                                 <&topckgen CLK_TOP_UNIVPLL_D2>,
index 77f9ab94c00bd98e791df6067f2e0e8bfdf5c7cb..681deddffc2ad0b18ec2a3ea6b587a229d6c6208 100644 (file)
        };
 };
 
+&pmic {
+       interrupts-extended = <&pio 182 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &mfg {
        domain-supply = <&mt6358_vgpu_reg>;
 };
index 2c69e7658dba6df23e1033f862c98ef18c1028d0..8b57706ac8140b91fbeeca6b806ccd1fa2fb0558 100644 (file)
@@ -11,8 +11,7 @@
                pinctrl-0 = <&da7219_pins>;
                compatible = "dlg,da7219";
                reg = <0x1a>;
-               interrupt-parent = <&pio>;
-               interrupts = <165 IRQ_TYPE_LEVEL_LOW 165 0>;
+               interrupts-extended = <&pio 165 IRQ_TYPE_LEVEL_LOW>;
 
                dlg,micbias-lvl = <2600>;
                dlg,mic-amp-in-sel = "diff";
index 0799c48ade19e302a384381977b2e2edaded9b24..548e22c194a21c4df39976542f420117fc606b01 100644 (file)
@@ -11,8 +11,7 @@
                pinctrl-0 = <&ts3a227e_pins>;
                compatible = "ti,ts3a227e";
                reg = <0x3b>;
-               interrupt-parent = <&pio>;
-               interrupts = <157 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 157 IRQ_TYPE_LEVEL_LOW>;
                status = "okay";
        };
 };
index 552bfc72699945bd86f84a8688edb3bd80be4869..0b45aee2e29953b6117b462034a00dff2596b9ff 100644 (file)
@@ -18,8 +18,7 @@
 
        compatible = "hid-over-i2c";
        reg = <0x10>;
-       interrupt-parent = <&pio>;
-       interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+       interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&touchscreen_pins>;
 
index 77b96ddf648ebe636b9ce84fbe9f3215e593aeaa..b595622e7beea31657bffcc32003f574c41cdcf8 100644 (file)
@@ -30,8 +30,7 @@
 
        compatible = "hid-over-i2c";
        reg = <0x10>;
-       interrupt-parent = <&pio>;
-       interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+       interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&touchscreen_pins>;
 
index 37e6e58f63b7e3623e843d5fd8c6869c417de2e8..5a1c39318a6caaa545be5b5c88cd6b877f346c65 100644 (file)
@@ -17,8 +17,7 @@
 
        compatible = "hid-over-i2c";
        reg = <0x10>;
-       interrupt-parent = <&pio>;
-       interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+       interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&touchscreen_pins>;
 
index 0e09604004d5e74dc67ab54d7dc3c1a0f2341441..3ea4fdb401184fb5316bbb94e77ae9fad1bb3f94 100644 (file)
@@ -17,8 +17,7 @@
 
        compatible = "hid-over-i2c";
        reg = <0x10>;
-       interrupt-parent = <&pio>;
-       interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+       interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&touchscreen_pins>;
 
diff --git a/src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts b/src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
new file mode 100644 (file)
index 0000000..4eb2a0d
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
+
+/ {
+       model = "Google makomo sku0 board";
+       chassis-type = "laptop";
+       compatible = "google,makomo-sku0", "google,makomo", "mediatek,mt8183";
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_FENNEL14";
+};
+
+&mmc1_pins_uhs {
+       pins-clk {
+               drive-strength = <MTK_DRIVE_6mA>;
+       };
+};
diff --git a/src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts b/src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
new file mode 100644 (file)
index 0000000..6a73336
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-rt1015p.dtsi"
+
+/ {
+       model = "Google makomo sku1 board";
+       chassis-type = "laptop";
+       compatible = "google,makomo-sku1", "google,makomo", "mediatek,mt8183";
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_FENNEL14";
+};
+
+&mmc1_pins_uhs {
+       pins-clk {
+               drive-strength = <MTK_DRIVE_6mA>;
+       };
+};
diff --git a/src/arm64/mediatek/mt8183-kukui-jacuzzi-pico.dts b/src/arm64/mediatek/mt8183-kukui-jacuzzi-pico.dts
new file mode 100644 (file)
index 0000000..8ce9568
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-max98357a.dtsi"
+
+/ {
+       model = "Google pico board";
+       chassis-type = "convertible";
+       compatible = "google,pico-sku1", "google,pico", "mediatek,mt8183";
+};
+
+&i2c_tunnel {
+       google,remote-bus = <0>;
+};
+
+&i2c2 {
+       i2c-scl-internal-delay-ns = <25000>;
+
+       trackpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               hid-descr-addr = <0x20>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&trackpad_pins>;
+
+               interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
+
+               wakeup-source;
+       };
+};
diff --git a/src/arm64/mediatek/mt8183-kukui-jacuzzi-pico6.dts b/src/arm64/mediatek/mt8183-kukui-jacuzzi-pico6.dts
new file mode 100644 (file)
index 0000000..a2e74b8
--- /dev/null
@@ -0,0 +1,110 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-max98357a.dtsi"
+
+/ {
+       model = "Google pico6 board";
+       chassis-type = "convertible";
+       compatible = "google,pico-sku2", "google,pico", "mediatek,mt8183";
+
+       bt_wakeup: bt-wakeup {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pins_wakeup>;
+
+               wobt {
+                       label = "Wake on BT";
+                       gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+       };
+};
+
+&i2c_tunnel {
+       google,remote-bus = <0>;
+};
+
+&i2c2 {
+       i2c-scl-internal-delay-ns = <25000>;
+
+       trackpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               hid-descr-addr = <0x20>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&trackpad_pins>;
+
+               interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
+
+               wakeup-source;
+       };
+};
+
+&wifi_wakeup {
+       wowlan {
+               gpios = <&pio 113 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&wifi_pwrseq {
+       post-power-on-delay-ms = <50>;
+
+       /* Toggle WIFI_ENABLE to reset the chip. */
+       reset-gpios = <&pio 8 GPIO_ACTIVE_LOW>;
+};
+
+&wifi_pins_pwrseq {
+       pins-wifi-enable {
+               pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
+       };
+};
+
+&mmc1_pins_default {
+       pins-cmd-dat {
+               drive-strength = <MTK_DRIVE_6mA>;
+       };
+       pins-clk {
+               drive-strength = <MTK_DRIVE_6mA>;
+       };
+};
+
+&mmc1_pins_uhs {
+       pins-clk {
+               drive-strength = <MTK_DRIVE_6mA>;
+       };
+};
+
+&mmc1 {
+       bt_reset: bt-reset {
+               compatible = "mediatek,mt7921s-bluetooth";
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pins_reset>;
+               reset-gpios = <&pio 120 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pio {
+       bt_pins_wakeup: bt-pins-wakeup {
+               piins-bt-wakeup {
+                       pinmux = <PINMUX_GPIO42__FUNC_GPIO42>;
+                       input-enable;
+               };
+       };
+
+       bt_pins_reset: bt-pins-reset {
+               pins-bt-reset {
+                       pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
+                       output-high;
+               };
+       };
+};
+
+/delete-node/ &bluetooth;
+/delete-node/ &bt_pins;
index 820260348de9b655f051b0d9fc1eb78721e73fd6..7592e3b860377e5239ece9ba038ea49ae8ee0b90 100644 (file)
                reg = <0x58>;
                pinctrl-names = "default";
                pinctrl-0 = <&anx7625_pins>;
-               panel_flags = <1>;
                enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
                vdd10-supply = <&pp1200_mipibrdg>;
index fcce8ea1232e64e91bdc9835d18756df9f9d031e..1ecf39458d9308f7775b50803d759d4b042f1068 100644 (file)
                     "google,kakadu", "mediatek,mt8183";
 };
 
+&i2c0 {
+       touchscreen: touchscreen@10 {
+               compatible = "hid-over-i2c";
+               reg = <0x10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&open_touch>;
+
+               interrupts-extended = <&pio 155 IRQ_TYPE_EDGE_FALLING>;
+
+               post-power-on-delay-ms = <10>;
+               hid-descr-addr = <0x0001>;
+       };
+};
+
+&panel {
+       compatible = "boe,tv105wum-nw0";
+};
+
 &sound {
        compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
 };
index ebfabba72507583c1bb410f334056b0367632fea..ba74109a49094e723eb8d8562876f7e0cc6b8f6f 100644 (file)
        compatible = "google,kakadu-rev3", "google,kakadu-rev2",
                        "google,kakadu", "mediatek,mt8183";
 };
+
+&i2c0 {
+       touchscreen: touchscreen@10 {
+               compatible = "hid-over-i2c";
+               reg = <0x10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&open_touch>;
+
+               interrupts-extended = <&pio 155 IRQ_TYPE_EDGE_FALLING>;
+
+               post-power-on-delay-ms = <10>;
+               hid-descr-addr = <0x0001>;
+       };
+};
+
+&panel {
+       compatible = "boe,tv105wum-nw0";
+};
index a11adeb29b1f2ed64e1e837a67d56a19e82b648d..b6a9830af2696f55a9e013b462d96f6164d20ef8 100644 (file)
 
 &i2c0 {
        status = "okay";
-
-       touchscreen: touchscreen@10 {
-               compatible = "hid-over-i2c";
-               reg = <0x10>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&open_touch>;
-
-               interrupt-parent = <&pio>;
-               interrupts = <155 IRQ_TYPE_EDGE_FALLING>;
-
-               post-power-on-delay-ms = <10>;
-               hid-descr-addr = <0x0001>;
-       };
 };
 
 &mt6358_vcama2_reg {
 
 &panel {
        status = "okay";
-       compatible = "boe,tv105wum-nw0";
+       /* compatible will be set in board dts */
 };
diff --git a/src/arm64/mediatek/mt8183-kukui-katsu-sku32.dts b/src/arm64/mediatek/mt8183-kukui-katsu-sku32.dts
new file mode 100644 (file)
index 0000000..0536100
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-kakadu.dtsi"
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
+
+/ {
+       model = "Google katsu board";
+       chassis-type = "tablet";
+       compatible = "google,katsu-sku32", "google,katsu", "mediatek,mt8183";
+};
+
+&i2c0 {
+       touchscreen1: touchscreen@5d {
+               compatible = "goodix,gt7375p";
+               reg = <0x5d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&open_touch>;
+
+               interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
+
+               reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&lcd_pp3300>;
+       };
+};
+
+&panel {
+       compatible = "starry,2081101qfh032011-53g";
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_KATSU";
+};
diff --git a/src/arm64/mediatek/mt8183-kukui-katsu-sku38.dts b/src/arm64/mediatek/mt8183-kukui-katsu-sku38.dts
new file mode 100644 (file)
index 0000000..cf008ed
--- /dev/null
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-kakadu.dtsi"
+#include "mt8183-kukui-audio-rt1015p.dtsi"
+
+/ {
+       model = "Google katsu sku38 board";
+       chassis-type = "tablet";
+       compatible = "google,katsu-sku38", "google,katsu", "mediatek,mt8183";
+};
+
+&i2c0 {
+       touchscreen1: touchscreen@5d {
+               compatible = "goodix,gt7375p";
+               reg = <0x5d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&open_touch>;
+
+               interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
+
+               reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&lcd_pp3300>;
+       };
+};
+
+&panel {
+       compatible = "starry,2081101qfh032011-53g";
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_KATSU";
+};
+
+&sound {
+       compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
+};
index 4864c39e53a4fdef83395e89373ab86bf477a490..306c95166f3fecb83d88e4c8585ad4c33315d201 100644 (file)
@@ -48,8 +48,7 @@
        touchscreen: touchscreen@10 {
                compatible = "hid-over-i2c";
                reg = <0x10>;
-               interrupt-parent = <&pio>;
-               interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&touch_default>;
 
index d5f41c6c98814a90cd0f63d36dfeaf9f021e4966..382e4c6d7191c0325c666b966dca197f8b871b0a 100644 (file)
@@ -54,8 +54,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&open_touch>;
 
-               interrupt-parent = <&pio>;
-               interrupts = <155 IRQ_TYPE_EDGE_FALLING>;
+               interrupts-extended = <&pio 155 IRQ_TYPE_EDGE_FALLING>;
 
                post-power-on-delay-ms = <10>;
                hid-descr-addr = <0x0001>;
index 7881a27be0297096c6e633825b63ed01ddfd2970..1b3396b1cee394659d0a77c104f05e1e7762569f 100644 (file)
        };
 };
 
+&pmic {
+       interrupts-extended = <&pio 182 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &pwm0 {
        status = "okay";
        pinctrl-names = "default";
        status = "okay";
        cs-gpios = <&pio 86 GPIO_ACTIVE_LOW>;
 
-       cr50@0 {
+       tpm@0 {
                compatible = "google,cr50";
                reg = <0>;
                spi-max-frequency = <1000000>;
                pinctrl-names = "default";
                pinctrl-0 = <&h1_int_od_l>;
-               interrupt-parent = <&pio>;
-               interrupts = <153 IRQ_TYPE_EDGE_RISING>;
+               interrupts-extended = <&pio 153 IRQ_TYPE_EDGE_RISING>;
        };
 };
 
                compatible = "google,cros-ec-spi";
                reg = <0>;
                spi-max-frequency = <3000000>;
-               interrupt-parent = <&pio>;
-               interrupts = <151 IRQ_TYPE_LEVEL_LOW>;
+               interrupts-extended = <&pio 151 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&ec_ap_int_odl>;
 
index b5784a60c315d359afdd65b0390d99756178a490..76449b4cf23606e257858d23b1dc2e983f9f0a12 100644 (file)
        };
 };
 
+&pmic {
+       interrupts-extended = <&pio 182 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &mfg {
        domain-supply = <&mt6358_vgpu_reg>;
 };
index 976dc968b3ca14de97798bd5e823dbf552ca8300..920ee415ef5fbd225f4d8e7babe39c609597e0e0 100644 (file)
                        status = "disabled";
                };
 
-               svs: svs@1100b000 {
-                       compatible = "mediatek,mt8183-svs";
-                       reg = <0 0x1100b000 0 0x1000>;
-                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&infracfg CLK_INFRA_THERM>;
-                       clock-names = "main";
-                       nvmem-cells = <&svs_calibration>,
-                                     <&thermal_calibration>;
-                       nvmem-cell-names = "svs-calibration-data",
-                                          "t-calibration-data";
-               };
-
                thermal: thermal@1100b000 {
                        #thermal-sensor-cells = <1>;
                        compatible = "mediatek,mt8183-thermal";
-                       reg = <0 0x1100b000 0 0x1000>;
+                       reg = <0 0x1100b000 0 0xc00>;
                        clocks = <&infracfg CLK_INFRA_THERM>,
                                 <&infracfg CLK_INFRA_AUXADC>;
                        clock-names = "therm", "auxadc";
                        nvmem-cell-names = "calibration-data";
                };
 
+               svs: svs@1100bc00 {
+                       compatible = "mediatek,mt8183-svs";
+                       reg = <0 0x1100bc00 0 0x400>;
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&infracfg CLK_INFRA_THERM>;
+                       clock-names = "main";
+                       nvmem-cells = <&svs_calibration>,
+                                     <&thermal_calibration>;
+                       nvmem-cell-names = "svs-calibration-data",
+                                          "t-calibration-data";
+               };
+
                pwm0: pwm@1100e000 {
                        compatible = "mediatek,mt8183-disp-pwm";
                        reg = <0 0x1100e000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
                };
 
-               mdp3-rdma0@14001000 {
+               dma-controller0@14001000 {
                        compatible = "mediatek,mt8183-mdp3-rdma";
                        reg = <0 0x14001000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
                        iommus = <&iommu M4U_PORT_MDP_RDMA0>;
                        mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST 0>,
                                 <&gce 21 CMDQ_THR_PRIO_LOWEST 0>;
+                       #dma-cells = <1>;
                };
 
                mdp3-rsz0@14003000 {
                        clocks = <&mmsys CLK_MM_MDP_RSZ1>;
                };
 
-               mdp3-wrot0@14005000 {
+               dma-controller@14005000 {
                        compatible = "mediatek,mt8183-mdp3-wrot";
                        reg = <0 0x14005000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x5000 0x1000>;
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_MDP_WROT0>;
                        iommus = <&iommu M4U_PORT_MDP_WROT0>;
+                       #dma-cells = <1>;
                };
 
                mdp3-wdma@14006000 {
                        #clock-cells = <1>;
                };
 
+               vcodec_dec: video-codec@16020000 {
+                       compatible = "mediatek,mt8183-vcodec-dec";
+                       reg = <0 0x16020000 0 0x1000>,          /* VDEC_MISC */
+                             <0 0x16021000 0 0x800>,           /* VDEC_VLD */
+                             <0 0x16021800 0 0x800>,           /* VDEC_TOP */
+                             <0 0x16022000 0 0x1000>,          /* VDEC_MC */
+                             <0 0x16023000 0 0x1000>,          /* VDEC_AVCVLD */
+                             <0 0x16024000 0 0x1000>,          /* VDEC_AVCMV */
+                             <0 0x16025000 0 0x1000>,          /* VDEC_PP */
+                             <0 0x16026800 0 0x800>,           /* VP8_VD */
+                             <0 0x16027000 0 0x800>,           /* VP6_VD */
+                             <0 0x16027800 0 0x800>,           /* VP8_VL */
+                             <0 0x16028400 0 0x400>;           /* VP9_VD */
+                       reg-names = "misc", "ld", "top", "cm", "ad", "av", "pp",
+                                   "hwd", "hwq", "hwb", "hwg";
+                       interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_LOW>;
+                       iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
+                                <&iommu M4U_PORT_HW_VDEC_PPWRAP_EXT>;
+                       mediatek,scp = <&scp>;
+                       mediatek,vdecsys = <&vdecsys>;
+                       power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
+                       clocks = <&vdecsys CLK_VDEC_VDEC>;
+                       clock-names = "vdec";
+               };
+
                larb1: larb@16010000 {
                        compatible = "mediatek,mt8183-smi-larb";
                        reg = <0 0x16010000 0 0x1000>;
index df0c04f2ba1da9c934e08c76bf5146ff20d694e0..2fec6fd1c1a71db7477f4d211ff7be8750761264 100644 (file)
@@ -22,7 +22,7 @@
 
        aliases {
                ovl0 = &ovl0;
-               ovl_2l0 = &ovl_2l0;
+               ovl-2l0 = &ovl_2l0;
                rdma0 = &rdma0;
                rdma1 = &rdma1;
        };
                        status = "disabled";
                };
 
-               adsp_mailbox0: mailbox@10686000 {
+               adsp_mailbox0: mailbox@10686100 {
                        compatible = "mediatek,mt8186-adsp-mbox";
                        #mbox-cells = <0>;
                        reg = <0 0x10686100 0 0x1000>;
                        interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
-               adsp_mailbox1: mailbox@10687000 {
+               adsp_mailbox1: mailbox@10687100 {
                        compatible = "mediatek,mt8186-adsp-mbox";
                        #mbox-cells = <0>;
                        reg = <0 0x10687100 0 0x1000>;
diff --git a/src/arm64/mediatek/mt8188-evb.dts b/src/arm64/mediatek/mt8188-evb.dts
new file mode 100644 (file)
index 0000000..68a82b4
--- /dev/null
@@ -0,0 +1,387 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 MediaTek Inc.
+ */
+/dts-v1/;
+#include "mt8188.dtsi"
+#include "mt6359.dtsi"
+
+/ {
+       model = "MediaTek MT8188 evaluation board";
+       compatible = "mediatek,mt8188-evb", "mediatek,mt8188";
+
+       aliases {
+               serial0 = &uart0;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+               mmc0 = &mmc0;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x80000000>;
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scp_mem_reserved: memory@50000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x50000000 0 0x2900000>;
+                       no-map;
+               };
+       };
+};
+
+&auxadc {
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&mmc0 {
+       bus-width = <8>;
+       hs400-ds-delay = <0x1481b>;
+       max-frequency = <200000000>;
+
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       supports-cqe;
+       cap-mmc-hw-reset;
+       no-sdio;
+       no-sd;
+       non-removable;
+
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+
+       status = "okay";
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-always-on;
+};
+
+&nor_flash {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nor_pins_default>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <52000000>;
+       };
+};
+
+&pio {
+       adsp_uart_pins: adsp-uart-pins {
+               pins-tx-rx {
+                       pinmux = <PINMUX_GPIO35__FUNC_O_ADSP_UTXD0>,
+                                <PINMUX_GPIO36__FUNC_I1_ADSP_URXD0>;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO56__FUNC_B1_SDA0>,
+                                <PINMUX_GPIO55__FUNC_B1_SCL0>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c1_pins: i2c1-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO58__FUNC_B1_SDA1>,
+                                <PINMUX_GPIO57__FUNC_B1_SCL1>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c2_pins: i2c2-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO60__FUNC_B1_SDA2>,
+                                <PINMUX_GPIO59__FUNC_B1_SCL2>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c3_pins: i2c3-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO62__FUNC_B1_SDA3>,
+                                <PINMUX_GPIO61__FUNC_B1_SCL3>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c4_pins: i2c4-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO64__FUNC_B1_SDA4>,
+                                <PINMUX_GPIO63__FUNC_B1_SCL4>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c5_pins: i2c5-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO66__FUNC_B1_SDA5>,
+                                <PINMUX_GPIO65__FUNC_B1_SCL5>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO68__FUNC_B1_SDA6>,
+                                <PINMUX_GPIO67__FUNC_B1_SCL6>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+               };
+       };
+
+       mmc0_default_pins: mmc0-default-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO161__FUNC_B1_MSDC0_DAT0>,
+                                <PINMUX_GPIO160__FUNC_B1_MSDC0_DAT1>,
+                                <PINMUX_GPIO159__FUNC_B1_MSDC0_DAT2>,
+                                <PINMUX_GPIO158__FUNC_B1_MSDC0_DAT3>,
+                                <PINMUX_GPIO154__FUNC_B1_MSDC0_DAT4>,
+                                <PINMUX_GPIO153__FUNC_B1_MSDC0_DAT5>,
+                                <PINMUX_GPIO152__FUNC_B1_MSDC0_DAT6>,
+                                <PINMUX_GPIO151__FUNC_B1_MSDC0_DAT7>,
+                                <PINMUX_GPIO156__FUNC_B1_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-clk {
+                       pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO155__FUNC_O_MSDC0_RSTB>;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc0_uhs_pins: mmc0-uhs-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO161__FUNC_B1_MSDC0_DAT0>,
+                                <PINMUX_GPIO160__FUNC_B1_MSDC0_DAT1>,
+                                <PINMUX_GPIO159__FUNC_B1_MSDC0_DAT2>,
+                                <PINMUX_GPIO158__FUNC_B1_MSDC0_DAT3>,
+                                <PINMUX_GPIO154__FUNC_B1_MSDC0_DAT4>,
+                                <PINMUX_GPIO153__FUNC_B1_MSDC0_DAT5>,
+                                <PINMUX_GPIO152__FUNC_B1_MSDC0_DAT6>,
+                                <PINMUX_GPIO151__FUNC_B1_MSDC0_DAT7>,
+                                <PINMUX_GPIO156__FUNC_B1_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-clk-ds {
+                       pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>,
+                                <PINMUX_GPIO162__FUNC_B0_MSDC0_DSL>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO155__FUNC_O_MSDC0_RSTB>;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       nor_pins_default: nor-pins {
+               pins-io-ck {
+                       pinmux = <PINMUX_GPIO127__FUNC_B0_SPINOR_IO0>,
+                                <PINMUX_GPIO125__FUNC_O_SPINOR_CK>,
+                                <PINMUX_GPIO128__FUNC_B0_SPINOR_IO1>;
+                       bias-pull-down;
+               };
+
+               pins-io-cs {
+                       pinmux = <PINMUX_GPIO126__FUNC_O_SPINOR_CS>,
+                                <PINMUX_GPIO129__FUNC_B0_SPINOR_IO2>,
+                                <PINMUX_GPIO130__FUNC_B0_SPINOR_IO3>;
+                       bias-pull-up;
+               };
+       };
+
+       spi0_pins: spi0-pins {
+               pins-spi {
+                       pinmux = <PINMUX_GPIO69__FUNC_O_SPIM0_CSB>,
+                                <PINMUX_GPIO70__FUNC_O_SPIM0_CLK>,
+                                <PINMUX_GPIO71__FUNC_B0_SPIM0_MOSI>,
+                                <PINMUX_GPIO72__FUNC_B0_SPIM0_MISO>;
+                       bias-disable;
+               };
+       };
+
+       spi1_pins: spi1-pins {
+               pins-spi {
+                       pinmux = <PINMUX_GPIO75__FUNC_O_SPIM1_CSB>,
+                                <PINMUX_GPIO76__FUNC_O_SPIM1_CLK>,
+                                <PINMUX_GPIO77__FUNC_B0_SPIM1_MOSI>,
+                                <PINMUX_GPIO78__FUNC_B0_SPIM1_MISO>;
+                       bias-disable;
+               };
+       };
+
+       spi2_pins: spi2-pins {
+               pins-spi {
+                       pinmux = <PINMUX_GPIO79__FUNC_O_SPIM2_CSB>,
+                                <PINMUX_GPIO80__FUNC_O_SPIM2_CLK>,
+                                <PINMUX_GPIO81__FUNC_B0_SPIM2_MOSI>,
+                                <PINMUX_GPIO82__FUNC_B0_SPIM2_MISO>;
+                       bias-disable;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               pins-rx-tx {
+                       pinmux = <PINMUX_GPIO31__FUNC_O_UTXD0>,
+                                <PINMUX_GPIO32__FUNC_I1_URXD0>;
+                       bias-pull-up;
+               };
+       };
+};
+
+&pmic {
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&scp {
+       memory-region = <&scp_mem_reserved>;
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+       status = "okay";
+};
+
+&spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi1_pins>;
+       status = "okay";
+};
+
+&spi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2_pins>;
+       status = "okay";
+};
+
+&u3phy0 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&xhci0 {
+       status = "okay";
+};
+
+&xhci1 {
+       status = "okay";
+};
+
+&xhci2 {
+       status = "okay";
+};
diff --git a/src/arm64/mediatek/mt8188.dtsi b/src/arm64/mediatek/mt8188.dtsi
new file mode 100644 (file)
index 0000000..b4315c9
--- /dev/null
@@ -0,0 +1,956 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2023 MediaTek Inc.
+ *
+ */
+
+/dts-v1/;
+#include <dt-bindings/clock/mediatek,mt8188-clk.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
+#include <dt-bindings/power/mediatek,mt8188-power.h>
+
+/ {
+       compatible = "mediatek,mt8188";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x000>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x400>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x500>;
+                       enable-method = "psci";
+                       clock-frequency = <2000000000>;
+                       capacity-dmips-mhz = <282>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       i-cache-size = <32768>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <32768>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x600>;
+                       enable-method = "psci";
+                       clock-frequency = <2600000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x700>;
+                       enable-method = "psci";
+                       clock-frequency = <2600000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+
+                               core4 {
+                                       cpu = <&cpu4>;
+                               };
+
+                               core5 {
+                                       cpu = <&cpu5>;
+                               };
+
+                               core6 {
+                                       cpu = <&cpu6>;
+                               };
+
+                               core7 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       cpu_off_l: cpu-off-l {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x00010000>;
+                               local-timer-stop;
+                               entry-latency-us = <50>;
+                               exit-latency-us = <95>;
+                               min-residency-us = <580>;
+                       };
+
+                       cpu_off_b: cpu-off-b {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x00010000>;
+                               local-timer-stop;
+                               entry-latency-us = <45>;
+                               exit-latency-us = <140>;
+                               min-residency-us = <740>;
+                       };
+
+                       cluster_off_l: cluster-off-l {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x01010010>;
+                               local-timer-stop;
+                               entry-latency-us = <55>;
+                               exit-latency-us = <155>;
+                               min-residency-us = <840>;
+                       };
+
+                       cluster_off_b: cluster-off-b {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x01010010>;
+                               local-timer-stop;
+                               entry-latency-us = <50>;
+                               exit-latency-us = <200>;
+                               min-residency-us = <1000>;
+                       };
+               };
+
+               l2_0: l2-cache0 {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <131072>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       next-level-cache = <&l3_0>;
+                       cache-unified;
+               };
+
+               l2_1: l2-cache1 {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       next-level-cache = <&l3_0>;
+                       cache-unified;
+               };
+
+               l3_0: l3-cache {
+                       compatible = "cache";
+                       cache-level = <3>;
+                       cache-size = <2097152>;
+                       cache-line-size = <64>;
+                       cache-sets = <2048>;
+                       cache-unified;
+               };
+       };
+
+       clk13m: oscillator-13m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <13000000>;
+               clock-output-names = "clk13m";
+       };
+
+       clk26m: oscillator-26m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+               clock-output-names = "clk26m";
+       };
+
+       clk32k: oscillator-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "clk32k";
+       };
+
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
+       };
+
+       pmu-a78 {
+               compatible = "arm,cortex-a78-pmu";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer: timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+               clock-frequency = <13000000>;
+       };
+
+       soc {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               gic: interrupt-controller@c000000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <4>;
+                       #redistributor-regions = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       reg = <0 0x0c000000 0 0x40000>,
+                             <0 0x0c040000 0 0x200000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       ppi-partitions {
+                               ppi_cluster0: interrupt-partition-0 {
+                                       affinity = <&cpu0 &cpu1 &cpu2 &cpu3 &cpu4 &cpu5>;
+                               };
+
+                               ppi_cluster1: interrupt-partition-1 {
+                                       affinity = <&cpu6 &cpu7>;
+                               };
+                       };
+               };
+
+               topckgen: syscon@10000000 {
+                       compatible = "mediatek,mt8188-topckgen", "syscon";
+                       reg = <0 0x10000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               infracfg_ao: syscon@10001000 {
+                       compatible = "mediatek,mt8188-infracfg-ao", "syscon";
+                       reg = <0 0x10001000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               pericfg: syscon@10003000 {
+                       compatible = "mediatek,mt8188-pericfg", "syscon";
+                       reg = <0 0x10003000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               pio: pinctrl@10005000 {
+                       compatible = "mediatek,mt8188-pinctrl";
+                       reg = <0 0x10005000 0 0x1000>,
+                             <0 0x11c00000 0 0x1000>,
+                             <0 0x11e10000 0 0x1000>,
+                             <0 0x11e20000 0 0x1000>,
+                             <0 0x11ea0000 0 0x1000>,
+                             <0 0x1000b000 0 0x1000>;
+                       reg-names = "iocfg0", "iocfg_rm", "iocfg_lt",
+                                   "iocfg_lm", "iocfg_rt", "eint";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pio 0 0 176>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH 0>;
+                       #interrupt-cells = <2>;
+               };
+
+               watchdog: watchdog@10007000 {
+                       compatible = "mediatek,mt8188-wdt";
+                       reg = <0 0x10007000 0 0x100>;
+                       mediatek,disable-extrst;
+                       #reset-cells = <1>;
+               };
+
+               apmixedsys: syscon@1000c000 {
+                       compatible = "mediatek,mt8188-apmixedsys", "syscon";
+                       reg = <0 0x1000c000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               systimer: timer@10017000 {
+                       compatible = "mediatek,mt8188-timer", "mediatek,mt6765-timer";
+                       reg = <0 0x10017000 0 0x1000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk13m>;
+               };
+
+               pwrap: pwrap@10024000 {
+                       compatible = "mediatek,mt8188-pwrap", "mediatek,mt8195-pwrap", "syscon";
+                       reg = <0 0x10024000 0 0x1000>;
+                       reg-names = "pwrap";
+                       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_PMIC_AP>,
+                                <&infracfg_ao CLK_INFRA_AO_PMIC_TMR>;
+                       clock-names = "spi", "wrap";
+               };
+
+               scp: scp@10500000 {
+                       compatible = "mediatek,mt8188-scp";
+                       reg = <0 0x10500000 0 0x100000>,
+                             <0 0x10720000 0 0xe0000>;
+                       reg-names = "sram", "cfg";
+                       interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
+               adsp_audio26m: clock-controller@10b91100 {
+                       compatible = "mediatek,mt8188-adsp-audio26m";
+                       reg = <0 0x10b91100 0 0x100>;
+                       #clock-cells = <1>;
+               };
+
+               uart0: serial@11001100 {
+                       compatible = "mediatek,mt8188-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11001100 0 0x100>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART0>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart1: serial@11001200 {
+                       compatible = "mediatek,mt8188-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11001200 0 0x100>;
+                       interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART1>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart2: serial@11001300 {
+                       compatible = "mediatek,mt8188-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11001300 0 0x100>;
+                       interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART2>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart3: serial@11001400 {
+                       compatible = "mediatek,mt8188-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11001400 0 0x100>;
+                       interrupts = <GIC_SPI 723 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART3>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               auxadc: adc@11002000 {
+                       compatible = "mediatek,mt8188-auxadc", "mediatek,mt8173-auxadc";
+                       reg = <0 0x11002000 0 0x1000>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_AUXADC>;
+                       clock-names = "main";
+                       #io-channel-cells = <1>;
+                       status = "disabled";
+               };
+
+               pericfg_ao: syscon@11003000 {
+                       compatible = "mediatek,mt8188-pericfg-ao", "syscon";
+                       reg = <0 0x11003000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               spi0: spi@1100a000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x1100a000 0 0x1000>;
+                       interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI0>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi1: spi@11010000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11010000 0 0x1000>;
+                       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI1>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi2: spi@11012000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11012000 0 0x1000>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI2>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi3: spi@11013000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11013000 0 0x1000>;
+                       interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI3>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi4: spi@11018000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11018000 0 0x1000>;
+                       interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI4>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi5: spi@11019000 {
+                       compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11019000 0 0x1000>;
+                       interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI5>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               xhci1: usb@11200000 {
+                       compatible = "mediatek,mt8188-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x11200000 0 0x1000>,
+                             <0 0x11203e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port1 PHY_TYPE_USB2>,
+                              <&u3port1 PHY_TYPE_USB3>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_TOP_REF>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck";
+                       mediatek,syscon-wakeup = <&pericfg 0x468 2>;
+                       wakeup-source;
+                       status = "disabled";
+               };
+
+               mmc0: mmc@11230000 {
+                       compatible = "mediatek,mt8188-mmc", "mediatek,mt8183-mmc";
+                       reg = <0 0x11230000 0 0x10000>,
+                             <0 0x11f50000 0 0x1000>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC50_0>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC0>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC0_SRC>,
+                                <&infracfg_ao CLK_INFRA_AO_RG_AES_MSDCFDE_CK_0P>;
+                       clock-names = "source", "hclk", "source_cg", "crypto_clk";
+                       status = "disabled";
+               };
+
+               mmc1: mmc@11240000 {
+                       compatible = "mediatek,mt8188-mmc", "mediatek,mt8183-mmc";
+                       reg = <0 0x11240000 0 0x1000>,
+                             <0 0x11eb0000 0 0x1000>;
+                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC30_1>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC1>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC1_SRC>;
+                       clock-names = "source", "hclk", "source_cg";
+                       assigned-clocks = <&topckgen CLK_TOP_MSDC30_1>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
+                       status = "disabled";
+               };
+
+               i2c0: i2c@11280000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11280000 0 0x1000>,
+                             <0 0x10220080 0 0x80>;
+                       interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_c CLK_IMP_IIC_WRAP_C_AP_CLOCK_I2C0>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@11281000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11281000 0 0x1000>,
+                             <0 0x10220180 0 0x80>;
+                       interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_c CLK_IMP_IIC_WRAP_C_AP_CLOCK_I2C2>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@11282000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11282000 0 0x1000>,
+                             <0 0x10220280 0 0x80>;
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_c CLK_IMP_IIC_WRAP_C_AP_CLOCK_I2C3>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               imp_iic_wrap_c: clock-controller@11283000 {
+                       compatible = "mediatek,mt8188-imp-iic-wrap-c";
+                       reg = <0 0x11283000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               xhci2: usb@112a0000 {
+                       compatible = "mediatek,mt8188-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x112a0000 0 0x1000>,
+                             <0 0x112a3e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port2 PHY_TYPE_USB2>;
+                       assigned-clocks = <&topckgen CLK_TOP_SSUSB_XHCI_3P>,
+                                         <&topckgen CLK_TOP_USB_TOP_3P>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_3P_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_TOP_P3_REF>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_3P_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck";
+                       status = "disabled";
+               };
+
+               xhci0: usb@112b0000 {
+                       compatible = "mediatek,mt8188-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x112b0000 0 0x1000>,
+                             <0 0x112b3e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port0 PHY_TYPE_USB2>;
+                       assigned-clocks = <&topckgen CLK_TOP_SSUSB_XHCI_2P>,
+                                         <&topckgen CLK_TOP_USB_TOP_2P>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_2P_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_TOP_P2_REF>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_2P_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck";
+                       mediatek,syscon-wakeup = <&pericfg 0x460 2>;
+                       wakeup-source;
+                       status = "disabled";
+               };
+
+               nor_flash: spi@1132c000 {
+                       compatible = "mediatek,mt8188-nor", "mediatek,mt8186-nor";
+                       reg = <0 0x1132c000 0 0x1000>;
+                       clocks = <&topckgen CLK_TOP_SPINOR>,
+                                <&pericfg_ao CLK_PERI_AO_FLASHIFLASHCK>,
+                                <&pericfg_ao CLK_PERI_AO_FLASHIF_BUS>;
+                       clock-names = "spi", "sf", "axi";
+                       assigned-clocks = <&topckgen CLK_TOP_SPINOR>;
+                       interrupts = <GIC_SPI 825 IRQ_TYPE_LEVEL_HIGH 0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@11e00000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11e00000 0 0x1000>,
+                             <0 0x10220100 0 0x80>;
+                       interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_AP_CLOCK_I2C1>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@11e01000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11e01000 0 0x1000>,
+                             <0 0x10220380 0 0x80>;
+                       interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_AP_CLOCK_I2C4>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               imp_iic_wrap_w: clock-controller@11e02000 {
+                       compatible = "mediatek,mt8188-imp-iic-wrap-w";
+                       reg = <0 0x11e02000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               u3phy0: t-phy@11e30000 {
+                       compatible = "mediatek,mt8188-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x11e30000 0x1000>;
+                       status = "disabled";
+
+                       u2port0: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_P2_REF>,
+                                        <&apmixedsys CLK_APMIXED_PLL_SSUSB26M_EN>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               u3phy1: t-phy@11e40000 {
+                       compatible = "mediatek,mt8188-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x11e40000 0x1000>;
+                       status = "disabled";
+
+                       u2port1: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_REF>,
+                                        <&apmixedsys CLK_APMIXED_PLL_SSUSB26M_EN>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+
+                       u3port1: usb-phy@700 {
+                               reg = <0x700 0x700>;
+                               clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M_EN>,
+                                        <&clk26m>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                               status = "disabled";
+                       };
+               };
+
+               u3phy2: t-phy@11e80000 {
+                       compatible = "mediatek,mt8188-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x11e80000 0x1000>;
+                       status = "disabled";
+
+                       u2port2: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_P3_REF>,
+                                        <&apmixedsys CLK_APMIXED_PLL_SSUSB26M_EN>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               i2c5: i2c@11ec0000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11ec0000 0 0x1000>,
+                             <0 0x10220480 0 0x80>;
+                       interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_en CLK_IMP_IIC_WRAP_EN_AP_CLOCK_I2C5>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c6: i2c@11ec1000 {
+                       compatible = "mediatek,mt8188-i2c";
+                       reg = <0 0x11ec1000 0 0x1000>,
+                             <0 0x10220600 0 0x80>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_en CLK_IMP_IIC_WRAP_EN_AP_CLOCK_I2C6>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_BCLK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               imp_iic_wrap_en: clock-controller@11ec2000 {
+                       compatible = "mediatek,mt8188-imp-iic-wrap-en";
+                       reg = <0 0x11ec2000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               mfgcfg: clock-controller@13fbf000 {
+                       compatible = "mediatek,mt8188-mfgcfg";
+                       reg = <0 0x13fbf000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vppsys0: clock-controller@14000000 {
+                       compatible = "mediatek,mt8188-vppsys0";
+                       reg = <0 0x14000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               wpesys: clock-controller@14e00000 {
+                       compatible = "mediatek,mt8188-wpesys";
+                       reg = <0 0x14e00000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               wpesys_vpp0: clock-controller@14e02000 {
+                       compatible = "mediatek,mt8188-wpesys-vpp0";
+                       reg = <0 0x14e02000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vppsys1: clock-controller@14f00000 {
+                       compatible = "mediatek,mt8188-vppsys1";
+                       reg = <0 0x14f00000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys: clock-controller@15000000 {
+                       compatible = "mediatek,mt8188-imgsys";
+                       reg = <0 0x15000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys1_dip_top: clock-controller@15110000 {
+                       compatible = "mediatek,mt8188-imgsys1-dip-top";
+                       reg = <0 0x15110000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys1_dip_nr: clock-controller@15130000 {
+                       compatible = "mediatek,mt8188-imgsys1-dip-nr";
+                       reg = <0 0x15130000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys_wpe1: clock-controller@15220000 {
+                       compatible = "mediatek,mt8188-imgsys-wpe1";
+                       reg = <0 0x15220000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               ipesys: clock-controller@15330000 {
+                       compatible = "mediatek,mt8188-ipesys";
+                       reg = <0 0x15330000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys_wpe2: clock-controller@15520000 {
+                       compatible = "mediatek,mt8188-imgsys-wpe2";
+                       reg = <0 0x15520000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys_wpe3: clock-controller@15620000 {
+                       compatible = "mediatek,mt8188-imgsys-wpe3";
+                       reg = <0 0x15620000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys: clock-controller@16000000 {
+                       compatible = "mediatek,mt8188-camsys";
+                       reg = <0 0x16000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_rawa: clock-controller@1604f000 {
+                       compatible = "mediatek,mt8188-camsys-rawa";
+                       reg = <0 0x1604f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_yuva: clock-controller@1606f000 {
+                       compatible = "mediatek,mt8188-camsys-yuva";
+                       reg = <0 0x1606f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_rawb: clock-controller@1608f000 {
+                       compatible = "mediatek,mt8188-camsys-rawb";
+                       reg = <0 0x1608f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_yuvb: clock-controller@160af000 {
+                       compatible = "mediatek,mt8188-camsys-yuvb";
+                       reg = <0 0x160af000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               ccusys: clock-controller@17200000 {
+                       compatible = "mediatek,mt8188-ccusys";
+                       reg = <0 0x17200000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vdecsys_soc: clock-controller@1800f000 {
+                       compatible = "mediatek,mt8188-vdecsys-soc";
+                       reg = <0 0x1800f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vdecsys: clock-controller@1802f000 {
+                       compatible = "mediatek,mt8188-vdecsys";
+                       reg = <0 0x1802f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vencsys: clock-controller@1a000000 {
+                       compatible = "mediatek,mt8188-vencsys";
+                       reg = <0 0x1a000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+       };
+};
index f2281250ac35da2514d73191cbcdb2e195afcbcb..d87aab8d7a79ed4ac8365b951f16c370b2efcc91 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi5_pins>;
 
-       cr50@0 {
+       tpm@0 {
                compatible = "google,cr50";
                reg = <0>;
                interrupts-extended = <&pio 171 IRQ_TYPE_EDGE_RISING>;
index 69f4cded5dbbf2112c082378b9018b5e7dbec1d2..6dd32dbfb832e7d8cdbb7c8a1c8098c6834329de 100644 (file)
@@ -14,6 +14,8 @@
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/power/mt8192-power.h>
 #include <dt-bindings/reset/mt8192-resets.h>
+#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/thermal/mediatek,lvts-thermal.h>
 
 / {
        compatible = "mediatek,mt8192";
@@ -72,6 +74,7 @@
                        next-level-cache = <&l2_0>;
                        performance-domains = <&performance 0>;
                        capacity-dmips-mhz = <427>;
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@100 {
@@ -90,6 +93,7 @@
                        next-level-cache = <&l2_0>;
                        performance-domains = <&performance 0>;
                        capacity-dmips-mhz = <427>;
+                       #cooling-cells = <2>;
                };
 
                cpu2: cpu@200 {
                        next-level-cache = <&l2_0>;
                        performance-domains = <&performance 0>;
                        capacity-dmips-mhz = <427>;
+                       #cooling-cells = <2>;
                };
 
                cpu3: cpu@300 {
                        next-level-cache = <&l2_0>;
                        performance-domains = <&performance 0>;
                        capacity-dmips-mhz = <427>;
+                       #cooling-cells = <2>;
                };
 
                cpu4: cpu@400 {
                        next-level-cache = <&l2_1>;
                        performance-domains = <&performance 1>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                };
 
                cpu5: cpu@500 {
                        next-level-cache = <&l2_1>;
                        performance-domains = <&performance 1>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                };
 
                cpu6: cpu@600 {
                        next-level-cache = <&l2_1>;
                        performance-domains = <&performance 1>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                };
 
                cpu7: cpu@700 {
                        next-level-cache = <&l2_1>;
                        performance-domains = <&performance 1>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                };
 
                cpu-map {
                        status = "disabled";
                };
 
+               lvts_ap: thermal-sensor@1100b000 {
+                       compatible = "mediatek,mt8192-lvts-ap";
+                       reg = <0 0x1100b000 0 0xc00>;
+                       interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg CLK_INFRA_THERM>;
+                       resets = <&infracfg MT8192_INFRA_RST0_THERM_CTRL_SWRST>;
+                       nvmem-cells = <&lvts_e_data1>;
+                       nvmem-cell-names = "lvts-calib-data-1";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               svs: svs@1100bc00 {
+                       compatible = "mediatek,mt8192-svs";
+                       reg = <0 0x1100bc00 0 0x400>;
+                       interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg CLK_INFRA_THERM>;
+                       clock-names = "main";
+                       nvmem-cells = <&svs_calibration>, <&lvts_e_data1>;
+                       nvmem-cell-names = "svs-calibration-data", "t-calibration-data";
+                       resets = <&infracfg MT8192_INFRA_RST3_THERM_CTRL_PTP_SWRST>;
+                       reset-names = "svs_rst";
+               };
+
                pwm0: pwm@1100e000 {
                        compatible = "mediatek,mt8183-disp-pwm";
                        reg = <0 0x1100e000 0 0x1000>;
                        status = "disabled";
                };
 
+               lvts_mcu: thermal-sensor@11278000 {
+                       compatible = "mediatek,mt8192-lvts-mcu";
+                       reg = <0 0x11278000 0 0x1000>;
+                       interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg CLK_INFRA_THERM>;
+                       resets = <&infracfg MT8192_INFRA_RST4_THERM_CTRL_MCU_SWRST>;
+                       nvmem-cells = <&lvts_e_data1>;
+                       nvmem-cell-names = "lvts-calib-data-1";
+                       #thermal-sensor-cells = <1>;
+               };
+
                efuse: efuse@11c10000 {
                        compatible = "mediatek,mt8192-efuse", "mediatek,efuse";
                        reg = <0 0x11c10000 0 0x1000>;
                        power-domains = <&spm MT8192_POWER_DOMAIN_MDP>;
                };
        };
+
+       thermal_zones: thermal-zones {
+               cpu0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_LITTLE_CPU0>;
+
+                       trips {
+                               cpu0_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu0_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_LITTLE_CPU1>;
+
+                       trips {
+                               cpu1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu1_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_LITTLE_CPU2>;
+
+                       trips {
+                               cpu2_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu2_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu3-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_LITTLE_CPU3>;
+
+                       trips {
+                               cpu3_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu3_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu3_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu4-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_BIG_CPU0>;
+
+                       trips {
+                               cpu4_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu4_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu5-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_BIG_CPU1>;
+
+                       trips {
+                               cpu5_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu5_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu6-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_BIG_CPU2>;
+
+                       trips {
+                               cpu6_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu6_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu7-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_mcu MT8192_MCU_BIG_CPU3>;
+
+                       trips {
+                               cpu7_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu7_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               vpu0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_VPU0>;
+
+                       trips {
+                               vpu0_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               vpu0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               vpu1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_VPU1>;
+
+                       trips {
+                               vpu1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               vpu1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_GPU0>;
+
+                       trips {
+                               gpu0_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_GPU1>;
+
+                       trips {
+                               gpu1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               infra-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_INFRA>;
+
+                       trips {
+                               infra_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               infra_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cam-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_CAM>;
+
+                       trips {
+                               cam_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cam_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               md0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_MD0>;
+
+                       trips {
+                               md0_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               md0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               md1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_MD1>;
+
+                       trips {
+                               md1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               md1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               md2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8192_AP_MD2>;
+
+                       trips {
+                               md2_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               md2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
 };
index 5a7cab489ff3ace4d45807378c6bc9973af994cf..3c6079edda190d3606ff5f1f36bc3ad10ff99019 100644 (file)
                regulator-boot-on;
        };
 
+       /* Murata NCP03WF104F05RL */
+       tboard_thermistor1: thermal-sensor-t1 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 0>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <    (-10000) 1553
+                                               (-5000) 1485
+                                               0 1406
+                                               5000 1317
+                                               10000 1219
+                                               15000 1115
+                                               20000 1007
+                                               25000 900
+                                               30000 796
+                                               35000 697
+                                               40000 605
+                                               45000 523
+                                               50000 449
+                                               55000 384
+                                               60000 327
+                                               65000 279
+                                               70000 237
+                                               75000 202
+                                               80000 172
+                                               85000 147
+                                               90000 125
+                                               95000 107
+                                               100000 92
+                                               105000 79
+                                               110000 68
+                                               115000 59
+                                               120000 51
+                                               125000 44>;
+       };
+
+       tboard_thermistor2: thermal-sensor-t2 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 1>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <    (-10000) 1553
+                                               (-5000) 1485
+                                               0 1406
+                                               5000 1317
+                                               10000 1219
+                                               15000 1115
+                                               20000 1007
+                                               25000 900
+                                               30000 796
+                                               35000 697
+                                               40000 605
+                                               45000 523
+                                               50000 449
+                                               55000 384
+                                               60000 327
+                                               65000 279
+                                               70000 237
+                                               75000 202
+                                               80000 172
+                                               85000 147
+                                               90000 125
+                                               95000 107
+                                               100000 92
+                                               105000 79
+                                               110000 68
+                                               115000 59
+                                               120000 51
+                                               125000 44>;
+       };
+
        usb_vbus: regulator-5v0-usb-vbus {
                compatible = "regulator-fixed";
                regulator-name = "usb-vbus";
        memory-region = <&afe_mem>;
 };
 
+&auxadc {
+       status = "okay";
+};
+
 &dp_intf0 {
        status = "okay";
 
        };
 };
 
+&mfg0 {
+       domain-supply = <&mt6315_7_vbuck1>;
+};
+
+&mfg1 {
+       domain-supply = <&mt6359_vsram_others_ldo_reg>;
+};
+
 &mmc0 {
        status = "okay";
 
 
 /* for GPU SRAM */
 &mt6359_vsram_others_ldo_reg {
-       regulator-always-on;
        regulator-min-microvolt = <750000>;
        regulator-max-microvolt = <750000>;
 };
                                regulator-enable-ramp-delay = <256>;
                                regulator-ramp-delay = <6250>;
                                regulator-allowed-modes = <0 1 2>;
-                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&thermal_zones {
+       soc-area-thermal {
+               polling-delay = <1000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&tboard_thermistor1>;
+
+               trips {
+                       trip-crit {
+                               temperature = <84000>;
+                               hysteresis = <1000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pmic-area-thermal {
+               polling-delay = <1000>;
+               polling-delay-passive = <0>;
+               thermal-sensors = <&tboard_thermistor2>;
+
+               trips {
+                       trip-crit {
+                               temperature = <84000>;
+                               hysteresis = <1000>;
+                               type = "critical";
                        };
                };
        };
 &xhci0 {
        status = "okay";
 
+       rx-fifo-depth = <3072>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        vbus-supply = <&usb_vbus>;
 };
 &xhci1 {
        status = "okay";
 
+       rx-fifo-depth = <3072>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        vbus-supply = <&usb_vbus>;
 };
index 69c7f3954ae59a8008a257807d31f227ba1cd2a8..4127cb84eba41a39f0fbff423a43de827dbea695 100644 (file)
                compatible = "mediatek,mt6360";
                reg = <0x34>;
                interrupt-controller;
+               #interrupt-cells = <1>;
                interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>;
                interrupt-names = "IRQB";
 
index e0ac2e9f5b7204a646514f1793b880b7adeb36fe..b9101662ce40d056295b799120a34c26f04e910d 100644 (file)
                                        #size-cells = <0>;
                                        #power-domain-cells = <1>;
 
-                                       power-domain@MT8195_POWER_DOMAIN_MFG1 {
+                                       mfg1: power-domain@MT8195_POWER_DOMAIN_MFG1 {
                                                reg = <MT8195_POWER_DOMAIN_MFG1>;
                                                clocks = <&apmixedsys CLK_APMIXED_MFGPLL>,
                                                         <&topckgen CLK_TOP_MFG_CORE_TMP>;
 
                lvts_ap: thermal-sensor@1100b000 {
                        compatible = "mediatek,mt8195-lvts-ap";
-                       reg = <0 0x1100b000 0 0x1000>;
+                       reg = <0 0x1100b000 0 0xc00>;
                        interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH 0>;
                        clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
                        resets = <&infracfg_ao MT8195_INFRA_RST0_THERM_CTRL_SWRST>;
                        #thermal-sensor-cells = <1>;
                };
 
+               svs: svs@1100bc00 {
+                       compatible = "mediatek,mt8195-svs";
+                       reg = <0 0x1100bc00 0 0x400>;
+                       interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
+                       clock-names = "main";
+                       nvmem-cells = <&svs_calib_data &lvts_efuse_data1>;
+                       nvmem-cell-names = "svs-calibration-data", "t-calibration-data";
+                       resets = <&infracfg_ao MT8195_INFRA_RST3_THERM_CTRL_PTP_SWRST>;
+                       reset-names = "svs_rst";
+               };
+
                disp_pwm0: pwm@1100e000 {
                        compatible = "mediatek,mt8195-disp-pwm", "mediatek,mt8183-disp-pwm";
                        reg = <0 0x1100e000 0 0x1000>;
                        lvts_efuse_data2: lvts2-calib@1d0 {
                                reg = <0x1d0 0x38>;
                        };
+                       svs_calib_data: svs-calib@580 {
+                               reg = <0x580 0x64>;
+                       };
                };
 
                u3phy2: t-phy@11c40000 {
                        };
                };
 
+               mipi_tx0: dsi-phy@11c80000 {
+                       compatible = "mediatek,mt8195-mipi-tx", "mediatek,mt8183-mipi-tx";
+                       reg = <0 0x11c80000 0 0x1000>;
+                       clocks = <&clk26m>;
+                       clock-output-names = "mipi_tx0_pll";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               mipi_tx1: dsi-phy@11c90000 {
+                       compatible = "mediatek,mt8195-mipi-tx", "mediatek,mt8183-mipi-tx";
+                       reg = <0 0x11c90000 0 0x1000>;
+                       clocks = <&clk26m>;
+                       clock-output-names = "mipi_tx1_pll";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                i2c5: i2c@11d00000 {
                        compatible = "mediatek,mt8195-i2c",
                                     "mediatek,mt8192-i2c";
                        #clock-cells = <1>;
                };
 
+               dma-controller@14001000 {
+                       compatible = "mediatek,mt8195-mdp3-rdma";
+                       reg = <0 0x14001000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x1000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_RDMA_SOF>,
+                                             <CMDQ_EVENT_VPP0_MDP_RDMA_FRAME_DONE>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+                       iommus = <&iommu_vpp M4U_PORT_L4_MDP_RDMA>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_RDMA>;
+                       mboxes = <&gce1 12 CMDQ_THR_PRIO_1>,
+                                <&gce1 13 CMDQ_THR_PRIO_1>,
+                                <&gce1 14 CMDQ_THR_PRIO_1>,
+                                <&gce1 21 CMDQ_THR_PRIO_1>,
+                                <&gce1 22 CMDQ_THR_PRIO_1>;
+                       #dma-cells = <1>;
+               };
+
+               display@14002000 {
+                       compatible = "mediatek,mt8195-mdp3-fg";
+                       reg = <0 0x14002000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x2000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_FG>;
+               };
+
+               display@14003000 {
+                       compatible = "mediatek,mt8195-mdp3-stitch";
+                       reg = <0 0x14003000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x3000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_STITCH>;
+               };
+
+               display@14004000 {
+                       compatible = "mediatek,mt8195-mdp3-hdr";
+                       reg = <0 0x14004000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x4000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_HDR>;
+               };
+
+               display@14005000 {
+                       compatible = "mediatek,mt8195-mdp3-aal";
+                       reg = <0 0x14005000 0 0x1000>;
+                       interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x5000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_AAL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+               };
+
+               display@14006000 {
+                       compatible = "mediatek,mt8195-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
+                       reg = <0 0x14006000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x6000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_RSZ_IN_RSZ_SOF>,
+                                             <CMDQ_EVENT_VPP0_MDP_RSZ_FRAME_DONE>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_RSZ>;
+               };
+
+               display@14007000 {
+                       compatible = "mediatek,mt8195-mdp3-tdshp";
+                       reg = <0 0x14007000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x7000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_TDSHP>;
+               };
+
+               display@14008000 {
+                       compatible = "mediatek,mt8195-mdp3-color";
+                       reg = <0 0x14008000 0 0x1000>;
+                       interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x8000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_COLOR>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+               };
+
+               display@14009000 {
+                       compatible = "mediatek,mt8195-mdp3-ovl";
+                       reg = <0 0x14009000 0 0x1000>;
+                       interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x9000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_OVL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+                       iommus = <&iommu_vpp M4U_PORT_L4_MDP_OVL>;
+               };
+
+               display@1400a000 {
+                       compatible = "mediatek,mt8195-mdp3-padding";
+                       reg = <0 0x1400a000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xa000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_PADDING>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+               };
+
+               display@1400b000 {
+                       compatible = "mediatek,mt8195-mdp3-tcc";
+                       reg = <0 0x1400b000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xb000 0x1000>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_TCC>;
+               };
+
+               dma-controller@1400c000 {
+                       compatible = "mediatek,mt8195-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
+                       reg = <0 0x1400c000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xc000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_WROT_SOF>,
+                                             <CMDQ_EVENT_VPP0_MDP_WROT_VIDO_WDONE>;
+                       clocks = <&vppsys0 CLK_VPP0_MDP_WROT>;
+                       iommus = <&iommu_vpp M4U_PORT_L4_MDP_WROT>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
+                       #dma-cells = <1>;
+               };
+
                mutex@1400f000 {
                        compatible = "mediatek,mt8195-vpp-mutex";
                        reg = <0 0x1400f000 0 0x1000>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
                };
 
+               display@14f06000 {
+                       compatible = "mediatek,mt8195-mdp3-split";
+                       reg = <0 0x14f06000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x6000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_VPP_SPLIT>,
+                                <&vppsys1 CLK_VPP1_HDMI_META>,
+                                <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f07000 {
+                       compatible = "mediatek,mt8195-mdp3-tcc";
+                       reg = <0 0x14f07000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x7000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_TCC>;
+               };
+
+               dma-controller@14f08000 {
+                       compatible = "mediatek,mt8195-mdp3-rdma";
+                       reg = <0 0x14f08000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x8000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP1_MDP_RDMA_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP1_MDP_RDMA_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_RDMA>;
+                       iommus = <&iommu_vdo M4U_PORT_L5_SVPP1_MDP_RDMA>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
+               dma-controller@14f09000 {
+                       compatible = "mediatek,mt8195-mdp3-rdma";
+                       reg = <0 0x14f09000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x9000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_RDMA_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP2_MDP_RDMA_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_RDMA>;
+                       iommus = <&iommu_vdo M4U_PORT_L5_SVPP2_MDP_RDMA>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
+               dma-controller@14f0a000 {
+                       compatible = "mediatek,mt8195-mdp3-rdma";
+                       reg = <0 0x14f0a000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xa000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_RDMA_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP3_MDP_RDMA_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_RDMA>;
+                       iommus = <&iommu_vpp M4U_PORT_L6_SVPP3_MDP_RDMA>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
+               display@14f0b000 {
+                       compatible = "mediatek,mt8195-mdp3-fg";
+                       reg = <0 0x14f0b000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xb000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_FG>;
+               };
+
+               display@14f0c000 {
+                       compatible = "mediatek,mt8195-mdp3-fg";
+                       reg = <0 0x14f0c000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xc000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_FG>;
+               };
+
+               display@14f0d000 {
+                       compatible = "mediatek,mt8195-mdp3-fg";
+                       reg = <0 0x14f0d000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xd000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_FG>;
+               };
+
+               display@14f0e000 {
+                       compatible = "mediatek,mt8195-mdp3-hdr";
+                       reg = <0 0x14f0e000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xe000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_HDR>;
+               };
+
+               display@14f0f000 {
+                       compatible = "mediatek,mt8195-mdp3-hdr";
+                       reg = <0 0x14f0f000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xf000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_HDR>;
+               };
+
+               display@14f10000 {
+                       compatible = "mediatek,mt8195-mdp3-hdr";
+                       reg = <0 0x14f10000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_HDR>;
+               };
+
+               display@14f11000 {
+                       compatible = "mediatek,mt8195-mdp3-aal";
+                       reg = <0 0x14f11000 0 0x1000>;
+                       interrupts = <GIC_SPI 617 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x1000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_AAL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f12000 {
+                       compatible = "mediatek,mt8195-mdp3-aal";
+                       reg = <0 0x14f12000 0 0x1000>;
+                       interrupts = <GIC_SPI 618 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x2000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_AAL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f13000 {
+                       compatible = "mediatek,mt8195-mdp3-aal";
+                       reg = <0 0x14f13000 0 0x1000>;
+                       interrupts = <GIC_SPI 619 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x3000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_AAL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f14000 {
+                       compatible = "mediatek,mt8195-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
+                       reg = <0 0x14f14000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x4000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP1_MDP_RSZ_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP1_MDP_RSZ_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_RSZ>;
+               };
+
+               display@14f15000 {
+                       compatible = "mediatek,mt8195-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
+                       reg = <0 0x14f15000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x5000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_RSZ_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP2_MDP_RSZ_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_RSZ>;
+               };
+
+               display@14f16000 {
+                       compatible = "mediatek,mt8195-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
+                       reg = <0 0x14f16000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x6000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_RSZ_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP3_MDP_RSZ_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_RSZ>;
+               };
+
+               display@14f17000 {
+                       compatible = "mediatek,mt8195-mdp3-tdshp";
+                       reg = <0 0x14f17000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x7000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_TDSHP>;
+               };
+
+               display@14f18000 {
+                       compatible = "mediatek,mt8195-mdp3-tdshp";
+                       reg = <0 0x14f18000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x8000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_TDSHP>;
+               };
+
+               display@14f19000 {
+                       compatible = "mediatek,mt8195-mdp3-tdshp";
+                       reg = <0 0x14f19000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x9000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_TDSHP>;
+               };
+
+               display@14f1a000 {
+                       compatible = "mediatek,mt8195-mdp3-merge";
+                       reg = <0 0x14f1a000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xa000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_VPP_MERGE>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f1b000 {
+                       compatible = "mediatek,mt8195-mdp3-merge";
+                       reg = <0 0x14f1b000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xb000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_VPP_MERGE>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f1c000 {
+                       compatible = "mediatek,mt8195-mdp3-color";
+                       reg = <0 0x14f1c000 0 0x1000>;
+                       interrupts = <GIC_SPI 628 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xc000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_COLOR>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f1d000 {
+                       compatible = "mediatek,mt8195-mdp3-color";
+                       reg = <0 0x14f1d000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xd000 0x1000>;
+                       interrupts = <GIC_SPI 629 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_COLOR>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f1e000 {
+                       compatible = "mediatek,mt8195-mdp3-color";
+                       reg = <0 0x14f1e000 0 0x1000>;
+                       interrupts = <GIC_SPI 630 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xe000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_COLOR>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f1f000 {
+                       compatible = "mediatek,mt8195-mdp3-ovl";
+                       reg = <0 0x14f1f000 0 0x1000>;
+                       interrupts = <GIC_SPI 631 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xf000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_OVL>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       iommus = <&iommu_vdo M4U_PORT_L5_SVPP1_MDP_OVL>;
+               };
+
+               display@14f20000 {
+                       compatible = "mediatek,mt8195-mdp3-padding";
+                       reg = <0 0x14f20000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_VPP_PAD>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f21000 {
+                       compatible = "mediatek,mt8195-mdp3-padding";
+                       reg = <0 0x14f21000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x1000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_VPP_PAD>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               display@14f22000 {
+                       compatible = "mediatek,mt8195-mdp3-padding";
+                       reg = <0 0x14f22000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x2000 0x1000>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_VPP_PAD>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+               };
+
+               dma-controller@14f23000 {
+                       compatible = "mediatek,mt8195-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
+                       reg = <0 0x14f23000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x3000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP1_MDP_WROT_SOF>,
+                                             <CMDQ_EVENT_VPP1_SVPP1_MDP_WROT_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP1_MDP_WROT>;
+                       iommus = <&iommu_vdo M4U_PORT_L5_SVPP1_MDP_WROT>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
+               dma-controller@14f24000 {
+                       compatible = "mediatek,mt8195-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
+                       reg = <0 0x14f24000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x4000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_WROT_SOF>,
+                                       <CMDQ_EVENT_VPP1_SVPP2_MDP_WROT_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_WROT>;
+                       iommus = <&iommu_vdo M4U_PORT_L5_SVPP2_MDP_WROT>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
+               dma-controller@14f25000 {
+                       compatible = "mediatek,mt8195-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
+                       reg = <0 0x14f25000 0 0x1000>;
+                       mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x5000 0x1000>;
+                       mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_WROT_SOF>,
+                                       <CMDQ_EVENT_VPP1_SVPP3_MDP_WROT_FRAME_DONE>;
+                       clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_WROT>;
+                       iommus = <&iommu_vpp M4U_PORT_L6_SVPP3_MDP_WROT>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS1>;
+                       #dma-cells = <1>;
+               };
+
                imgsys: clock-controller@15000000 {
                        compatible = "mediatek,mt8195-imgsys";
                        reg = <0 0x15000000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c00XXXX 0x7000 0x1000>;
                };
 
+               dsi0: dsi@1c008000 {
+                       compatible = "mediatek,mt8195-dsi", "mediatek,mt8183-dsi";
+                       reg = <0 0x1c008000 0 0x1000>;
+                       interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS0>;
+                       clocks = <&vdosys0 CLK_VDO0_DSI0>,
+                                <&vdosys0 CLK_VDO0_DSI0_DSI>,
+                                <&mipi_tx0>;
+                       clock-names = "engine", "digital", "hs";
+                       phys = <&mipi_tx0>;
+                       phy-names = "dphy";
+                       status = "disabled";
+               };
+
                dsc0: dsc@1c009000 {
                        compatible = "mediatek,mt8195-disp-dsc";
                        reg = <0 0x1c009000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c00XXXX 0x9000 0x1000>;
                };
 
+               dsi1: dsi@1c012000 {
+                       compatible = "mediatek,mt8195-dsi", "mediatek,mt8183-dsi";
+                       reg = <0 0x1c012000 0 0x1000>;
+                       interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS0>;
+                       clocks = <&vdosys0 CLK_VDO0_DSI1>,
+                                <&vdosys0 CLK_VDO0_DSI1_DSI>,
+                                <&mipi_tx1>;
+                       clock-names = "engine", "digital", "hs";
+                       phys = <&mipi_tx1>;
+                       phy-names = "dphy";
+                       status = "disabled";
+               };
+
                merge0: merge@1c014000 {
                        compatible = "mediatek,mt8195-disp-merge";
                        reg = <0 0x1c014000 0 0x1000>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                };
 
-               vdo1_rdma0: rdma@1c104000 {
+               vdo1_rdma0: dma-controller@1c104000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c104000 0 0x1000>;
                        interrupts = <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vdo M4U_PORT_L2_MDP_RDMA0>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x4000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma1: rdma@1c105000 {
+               vdo1_rdma1: dma-controller@1c105000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c105000 0 0x1000>;
                        interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vpp M4U_PORT_L3_MDP_RDMA1>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x5000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma2: rdma@1c106000 {
+               vdo1_rdma2: dma-controller@1c106000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c106000 0 0x1000>;
                        interrupts = <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vdo M4U_PORT_L2_MDP_RDMA2>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x6000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma3: rdma@1c107000 {
+               vdo1_rdma3: dma-controller@1c107000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c107000 0 0x1000>;
                        interrupts = <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vpp M4U_PORT_L3_MDP_RDMA3>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x7000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma4: rdma@1c108000 {
+               vdo1_rdma4: dma-controller@1c108000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c108000 0 0x1000>;
                        interrupts = <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vdo M4U_PORT_L2_MDP_RDMA4>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x8000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma5: rdma@1c109000 {
+               vdo1_rdma5: dma-controller@1c109000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c109000 0 0x1000>;
                        interrupts = <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vpp M4U_PORT_L3_MDP_RDMA5>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x9000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma6: rdma@1c10a000 {
+               vdo1_rdma6: dma-controller@1c10a000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c10a000 0 0x1000>;
                        interrupts = <GIC_SPI 501 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vdo M4U_PORT_L2_MDP_RDMA6>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xa000 0x1000>;
+                       #dma-cells = <1>;
                };
 
-               vdo1_rdma7: rdma@1c10b000 {
+               vdo1_rdma7: dma-controller@1c10b000 {
                        compatible = "mediatek,mt8195-vdo1-rdma";
                        reg = <0 0x1c10b000 0 0x1000>;
                        interrupts = <GIC_SPI 502 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
                        iommus = <&iommu_vpp M4U_PORT_L3_MDP_RDMA7>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xb000 0x1000>;
+                       #dma-cells = <1>;
                };
 
                merge1: vpp-merge@1c10c000 {
index 00ac59a873e8ddd93ac2600ed07cb9005d474d1d..7fc515a07c65d1d3047c7d92cca2310f8877d3fa 100644 (file)
        touchscreen@5d {
                compatible = "goodix,gt9271";
                reg = <0x5d>;
-               interrupt-parent = <&pio>;
-               interrupts = <132 IRQ_TYPE_EDGE_RISING>;
+               interrupts-extended = <&pio 132 IRQ_TYPE_EDGE_RISING>;
                irq-gpios = <&pio 132 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&pio 133 GPIO_ACTIVE_HIGH>;
                AVDD28-supply = <&mt6360_ldo1>;
 };
 
 &pmic {
-       interrupt-parent = <&pio>;
-       interrupts = <222 IRQ_TYPE_LEVEL_HIGH>;
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
 };
 
 &scp {
index ea13c4a7027c46ba5f5151947537b5376bcbad20..81a82933e35004e7df51383ed22d291e40874dd9 100644 (file)
                        status = "okay";
 
                        phy-handle = <&mgbe0_phy>;
-                       phy-mode = "usxgmii";
+                       phy-mode = "10gbase-r";
 
                        mdio {
                                #address-cells = <1>;
index 3f16595d099c5620b0d2dde77f0e2c6491c4a576..d1bd328892afa2c319750b20c5b8b979283e6481 100644 (file)
                                        <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>;
                        interconnect-names = "dma-mem", "write";
                        iommus = <&smmu_niso0 TEGRA234_SID_MGBE>;
-                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>;
+                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEB>;
                        status = "disabled";
                };
 
                                        <&mc TEGRA234_MEMORY_CLIENT_MGBEBWR &emc>;
                        interconnect-names = "dma-mem", "write";
                        iommus = <&smmu_niso0 TEGRA234_SID_MGBE_VF1>;
-                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEB>;
+                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEC>;
                        status = "disabled";
                };
 
                                        <&mc TEGRA234_MEMORY_CLIENT_MGBECWR &emc>;
                        interconnect-names = "dma-mem", "write";
                        iommus = <&smmu_niso0 TEGRA234_SID_MGBE_VF2>;
-                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEC>;
+                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBED>;
                        status = "disabled";
                };
 
index e636a1cb9b7766b5dbf727efa4ce0558d2ac1896..8460b538eb6a3e2d6b971bd9637309809e0c0f0c 100644 (file)
        };
 };
 
+&usb {
+       status = "okay";
+};
+
+&usb_dwc {
+       dr_mode = "host";
+};
+
+&usbphy0 {
+       status = "okay";
+};
+
 &xo_board_clk {
        clock-frequency = <24000000>;
 };
index 38ffdc3cbdcd7cbeba67fc9f2996fd044fc0d66d..32b178b639f0cc722e4fda37ca5c3ec63488bfd7 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (c) 2023 The Linux Foundation. All rights reserved.
  */
 
+#include <dt-bindings/clock/qcom,apss-ipq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
 #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
@@ -36,6 +37,8 @@
                        reg = <0x0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       operating-points-v2 = <&cpu_opp_table>;
                };
 
                CPU1: cpu@1 {
@@ -44,6 +47,8 @@
                        reg = <0x1>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
+                       clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+                       operating-points-v2 = <&cpu_opp_table>;
                };
 
                L2_0: l2-cache {
                };
        };
 
+       cpu_opp_table: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <200000>;
+               };
+       };
+
        firmware {
                scm {
                        compatible = "qcom,scm-ipq5018", "qcom,scm";
                #size-cells = <2>;
                ranges;
 
+               bootloader@4a800000 {
+                       reg = <0x0 0x4a800000 0x0 0x200000>;
+                       no-map;
+               };
+
+               sbl@4aa00000 {
+                       reg = <0x0 0x4aa00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               smem@4ab00000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x4ab00000 0x0 0x100000>;
+                       no-map;
+
+                       hwlocks = <&tcsr_mutex 3>;
+               };
+
                tz_region: tz@4ac00000 {
                        reg = <0x0 0x4ac00000 0x0 0x200000>;
                        no-map;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
 
+               usbphy0: phy@5b000 {
+                       compatible = "qcom,ipq5018-usb-hsphy";
+                       reg = <0x0005b000 0x120>;
+
+                       clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>;
+
+                       resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                tlmm: pinctrl@1000000 {
                        compatible = "qcom,ipq5018-tlmm";
                        reg = <0x01000000 0x300000>;
                        #power-domain-cells = <1>;
                };
 
+               tcsr_mutex: hwlock@1905000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x01905000 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
                sdhc_1: mmc@7804000 {
                        compatible = "qcom,ipq5018-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0x7804000 0x1000>;
                        status = "disabled";
                };
 
+               blsp_dma: dma-controller@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x1d000>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+
                blsp1_uart1: serial@78af000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x078af000 0x200>;
                        status = "disabled";
                };
 
+               blsp1_spi1: spi@78b5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x078b5000 0x600>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               usb: usb@8af8800 {
+                       compatible = "qcom,ipq5018-dwc3", "qcom,dwc3";
+                       reg = <0x08af8800 0x400>;
+
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq";
+
+                       clocks = <&gcc GCC_USB0_MASTER_CLK>,
+                                <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
+                                <&gcc GCC_USB0_SLEEP_CLK>,
+                                <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+                       clock-names = "core",
+                                     "iface",
+                                     "sleep",
+                                     "mock_utmi";
+
+                       resets = <&gcc GCC_USB0_BCR>;
+
+                       qcom,select-utmi-as-pipe-clk;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       status = "disabled";
+
+                       usb_dwc: usb@8a00000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x08a00000 0xe000>;
+                               clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+                               clock-names = "ref";
+                               interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                               phy-names = "usb2-phy";
+                               phys = <&usbphy0>;
+                               tx-fifo-resize;
+                               snps,is-utmi-l1-suspend;
+                               snps,hird-threshold = /bits/ 8 <0x0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_u3_susphy_quirk;
+                       };
+               };
+
                intc: interrupt-controller@b000000 {
                        compatible = "qcom,msm-qgic2";
                        reg = <0x0b000000 0x1000>,  /* GICD */
                        clocks = <&sleep_clk>;
                };
 
+               apcs_glb: mailbox@b111000 {
+                       compatible = "qcom,ipq5018-apcs-apps-global",
+                                    "qcom,ipq6018-apcs-apps-global";
+                       reg = <0x0b111000 0x1000>;
+                       #clock-cells = <1>;
+                       clocks = <&a53pll>, <&xo_board_clk>, <&gcc GPLL0>;
+                       clock-names = "pll", "xo", "gpll0";
+                       #mbox-cells = <1>;
+               };
+
+               a53pll: clock@b116000 {
+                       compatible = "qcom,ipq5018-a53pll";
+                       reg = <0x0b116000 0x40>;
+                       #clock-cells = <0>;
+                       clocks = <&xo_board_clk>;
+                       clock-names = "xo";
+               };
+
                timer@b120000 {
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0b120000 0x1000>;
index 4870cdb764d0035f53517badf49bb4d37f9a2f54..b37ae7749083f43f482231c1de9f99ac28ea2b66 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include "ipq5332.dtsi"
 
 / {
@@ -39,6 +40,8 @@
                pinctrl-names = "default";
 
                led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WLAN;
                        gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "phy0tx";
                        default-state = "off";
index e89e2e948603d6887594446371936756eae9584f..846413817e9ad0c9f34856530e86e4e47c9315e6 100644 (file)
@@ -15,7 +15,7 @@
 };
 
 &blsp1_i2c1 {
-       clock-frequency  = <400000>;
+       clock-frequency = <400000>;
        pinctrl-0 = <&i2c_1_pins>;
        pinctrl-names = "default";
        status = "okay";
index efd480a7afdf19c00d1c96ebf70e581fe78abc10..ed8a54eb95c02b17827a4ca297b50e1db17f5c4f 100644 (file)
@@ -15,7 +15,7 @@
 };
 
 &blsp1_i2c1 {
-       clock-frequency  = <400000>;
+       clock-frequency = <400000>;
        pinctrl-0 = <&i2c_1_pins>;
        pinctrl-names = "default";
        status = "okay";
index eb1fa33d6fe45cfab7caf9eb3e3db4abbf303fb5..d5f99e741ae57ad7093fe9802211c5464aafac8b 100644 (file)
@@ -15,7 +15,7 @@
 };
 
 &blsp1_i2c1 {
-       clock-frequency  = <400000>;
+       clock-frequency = <400000>;
        pinctrl-0 = <&i2c_1_pins>;
        pinctrl-names = "default";
        status = "okay";
index d3fef2f80a81f4c545be584777debd751418b34c..42e2e48b2bc3d10591eed3b4dbe43cecb6ce22be 100644 (file)
        };
 
        cpu_opp_table: opp-table-cpu {
-               compatible = "operating-points-v2";
+               compatible = "operating-points-v2-kryo-cpu";
                opp-shared;
+               nvmem-cells = <&cpu_speed_bin>;
 
-               opp-1488000000 {
-                       opp-hz = /bits/ 64 <1488000000>;
+               opp-1100000000 {
+                       opp-hz = /bits/ 64 <1100000000>;
+                       opp-supported-hw = <0x7>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1500000000 {
+                       opp-hz = /bits/ 64 <1500000000>;
+                       opp-supported-hw = <0x3>;
                        clock-latency-ns = <200000>;
                };
        };
                        reg = <0x000a4000 0x721>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       cpu_speed_bin: cpu-speed-bin@1d {
+                               reg = <0x1d 0x2>;
+                               bits = <7 2>;
+                       };
                };
 
                rng: rng@e3000 {
                                     "qcom,ipq6018-apcs-apps-global";
                        reg = <0x0b111000 0x1000>;
                        #clock-cells = <1>;
-                       clocks = <&a53pll>, <&xo_board>;
-                       clock-names = "pll", "xo";
+                       clocks = <&a53pll>, <&xo_board>, <&gcc GPLL0>;
+                       clock-names = "pll", "xo", "gpll0";
                        #mbox-cells = <1>;
                };
 
index e59b9df96c7e6c0e50a81e210efad4764955b76b..61c8fd49c96678740684696397eb15118d83e1b9 100644 (file)
        };
 
        cpu_opp_table: opp-table-cpu {
-               compatible = "operating-points-v2";
+               compatible = "operating-points-v2-kryo-cpu";
+               nvmem-cells = <&cpu_speed_bin>;
                opp-shared;
 
                opp-864000000 {
                        opp-hz = /bits/ 64 <864000000>;
                        opp-microvolt = <725000>;
+                       opp-supported-hw = <0xf>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1056000000 {
                        opp-hz = /bits/ 64 <1056000000>;
                        opp-microvolt = <787500>;
+                       opp-supported-hw = <0xf>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1320000000 {
                        opp-hz = /bits/ 64 <1320000000>;
                        opp-microvolt = <862500>;
+                       opp-supported-hw = <0x3>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1440000000 {
                        opp-hz = /bits/ 64 <1440000000>;
                        opp-microvolt = <925000>;
+                       opp-supported-hw = <0x3>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1608000000 {
                        opp-hz = /bits/ 64 <1608000000>;
                        opp-microvolt = <987500>;
+                       opp-supported-hw = <0x1>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1800000000 {
                        opp-hz = /bits/ 64 <1800000000>;
                        opp-microvolt = <1062500>;
+                       opp-supported-hw = <0x1>;
                        clock-latency-ns = <200000>;
                };
        };
 
                ssphy_0: ssphy@78000 {
                        compatible = "qcom,ipq6018-qmp-usb3-phy";
-                       reg = <0x0 0x00078000 0x0 0x1c4>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0x0 0x00078000 0x0 0x1000>;
 
                        clocks = <&gcc GCC_USB0_AUX_CLK>,
-                                <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, <&xo>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&xo>,
+                                <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
+                                <&gcc GCC_USB0_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "gcc_usb0_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
                        resets = <&gcc GCC_USB0_PHY_BCR>,
                                 <&gcc GCC_USB3PHY_0_PHY_BCR>;
-                       reset-names = "phy","common";
-                       status = "disabled";
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb0_ssphy: phy@78200 {
-                               reg = <0x0 0x00078200 0x0 0x130>, /* Tx */
-                                     <0x0 0x00078400 0x0 0x200>, /* Rx */
-                                     <0x0 0x00078800 0x0 0x1f8>, /* PCS */
-                                     <0x0 0x00078600 0x0 0x044>; /* PCS misc */
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB0_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "gcc_usb0_pipe_clk_src";
-                       };
+                       status = "disabled";
                };
 
                qusb_phy_0: qusb@79000 {
                        reg = <0x0 0x000a4000 0x0 0x2000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       cpu_speed_bin: cpu-speed-bin@135 {
+                               reg = <0x135 0x1>;
+                               bits = <7 1>;
+                       };
                };
 
                prng: qrng@e3000 {
                        qcom,ee = <0>;
                };
 
+               blsp1_uart1: serial@78af000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0 0x78af000 0x0 0x200>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart2: serial@78b0000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0 0x78b0000 0x0 0x200>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
                blsp1_uart3: serial@78b1000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0x0 0x078b1000 0x0 0x200>;
                        status = "disabled";
                };
 
+               blsp1_uart4: serial@78b2000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0 0x078b2000 0x0 0x200>;
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart5: serial@78b3000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0 0x78b3000 0x0 0x200>;
+                       interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_uart6: serial@78b4000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x0 0x078b4000 0x0 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";
+                       status = "disabled";
+               };
+
                blsp1_spi1: spi@78b5000 {
                        compatible = "qcom,spi-qup-v2.2.1";
                        #address-cells = <1>;
                        status = "disabled";
                };
 
+               blsp1_spi5: spi@78b9000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0 0x078b9000 0x0 0x600>;
+                       interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
                blsp1_i2c2: i2c@78b6000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        #address-cells = <1>;
                                          <&gcc GCC_USB0_MOCK_UTMI_CLK>;
                        assigned-clock-rates = <133330000>,
                                               <133330000>,
-                                              <20000000>;
+                                              <24000000>;
 
                        resets = <&gcc GCC_USB0_BCR>;
                        status = "disabled";
                                compatible = "snps,dwc3";
                                reg = <0x0 0x08a00000 0x0 0xcd00>;
                                interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
-                               phys = <&qusb_phy_0>, <&usb0_ssphy>;
+                               phys = <&qusb_phy_0>, <&ssphy_0>;
                                phy-names = "usb2-phy", "usb3-phy";
                                clocks = <&xo>;
                                clock-names = "ref";
                        compatible = "qcom,ipq6018-apcs-apps-global";
                        reg = <0x0 0x0b111000 0x0 0x1000>;
                        #clock-cells = <1>;
-                       clocks = <&a53pll>, <&xo>;
-                       clock-names = "pll", "xo";
+                       clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
+                       clock-names = "pll", "xo", "gpll0";
                        #mbox-cells = <1>;
                };
 
                        };
                };
 
-               pcie0: pci@20000000 {
+               pcie0: pcie@20000000 {
                        compatible = "qcom,pcie-ipq6018";
                        reg = <0x0 0x20000000 0x0 0xf1d>,
                              <0x0 0x20000f20 0x0 0xa8>,
 
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
-                                       <0 0 0 2 &intc 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
-                                       <0 0 0 3 &intc 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
-                                       <0 0 0 4 &intc 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
                        clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
                                 <&gcc GCC_PCIE0_AXI_M_CLK>,
index 2f275c84e566508dbf641af88d57fa77a124cfa9..26441447c866f6095aa26d48bb15c79f73bdd6c8 100644 (file)
 
                ssphy_1: phy@58000 {
                        compatible = "qcom,ipq8074-qmp-usb3-phy";
-                       reg = <0x00058000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x00058000 0x1000>;
 
                        clocks = <&gcc GCC_USB1_AUX_CLK>,
-                               <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
-                               <&xo>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&xo>,
+                                <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
+                                <&gcc GCC_USB1_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3phy_1_cc_pipe_clk";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
                        resets = <&gcc GCC_USB1_PHY_BCR>,
-                               <&gcc GCC_USB3PHY_1_PHY_BCR>;
-                       reset-names = "phy","common";
-                       status = "disabled";
+                                <&gcc GCC_USB3PHY_1_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb1_ssphy: phy@58200 {
-                               reg = <0x00058200 0x130>,     /* Tx */
-                                     <0x00058400 0x200>,     /* Rx */
-                                     <0x00058800 0x1f8>,     /* PCS */
-                                     <0x00058600 0x044>;     /* PCS misc */
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB1_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3phy_1_cc_pipe_clk";
-                       };
+                       status = "disabled";
                };
 
                qusb_phy_1: phy@59000 {
 
                ssphy_0: phy@78000 {
                        compatible = "qcom,ipq8074-qmp-usb3-phy";
-                       reg = <0x00078000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x00078000 0x1000>;
 
                        clocks = <&gcc GCC_USB0_AUX_CLK>,
-                               <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
-                               <&xo>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&xo>,
+                                <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
+                                <&gcc GCC_USB0_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3phy_0_cc_pipe_clk";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
                        resets = <&gcc GCC_USB0_PHY_BCR>,
-                               <&gcc GCC_USB3PHY_0_PHY_BCR>;
-                       reset-names = "phy","common";
-                       status = "disabled";
+                                <&gcc GCC_USB3PHY_0_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb0_ssphy: phy@78200 {
-                               reg = <0x00078200 0x130>,     /* Tx */
-                                     <0x00078400 0x200>,     /* Rx */
-                                     <0x00078800 0x1f8>,     /* PCS */
-                                     <0x00078600 0x044>;     /* PCS misc */
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB0_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3phy_0_cc_pipe_clk";
-                       };
+                       status = "disabled";
                };
 
                qusb_phy_0: phy@79000 {
                gcc: gcc@1800000 {
                        compatible = "qcom,gcc-ipq8074";
                        reg = <0x01800000 0x80000>;
-                       clocks = <&xo>, <&sleep_clk>;
-                       clock-names = "xo", "sleep_clk";
+                       clocks = <&xo>,
+                                <&sleep_clk>,
+                                <&pcie_qmp0>,
+                                <&pcie_qmp1>;
+                       clock-names = "xo",
+                                     "sleep_clk",
+                                     "pcie0_pipe",
+                                     "pcie1_pipe";
                        #clock-cells = <1>;
                        #power-domain-cells = <1>;
                        #reset-cells = <1>;
                };
 
                sdhc_1: mmc@7824900 {
-                       compatible = "qcom,sdhci-msm-v4";
+                       compatible = "qcom,ipq8074-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0x7824900 0x500>, <0x7824000 0x800>;
                        reg-names = "hc", "core";
 
                        status = "disabled";
                };
 
+               blsp1_spi4: spi@78b8000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x78b8000 0x600>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 18>, <&blsp_dma 19>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
                blsp1_i2c5: i2c@78b9000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        #address-cells = <1>;
                                compatible = "snps,dwc3";
                                reg = <0x8a00000 0xcd00>;
                                interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
-                               phys = <&qusb_phy_0>, <&usb0_ssphy>;
+                               phys = <&qusb_phy_0>, <&ssphy_0>;
                                phy-names = "usb2-phy", "usb3-phy";
                                snps,is-utmi-l1-suspend;
                                snps,hird-threshold = /bits/ 8 <0x0>;
                                compatible = "snps,dwc3";
                                reg = <0x8c00000 0xcd00>;
                                interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                               phys = <&qusb_phy_1>, <&usb1_ssphy>;
+                               phys = <&qusb_phy_1>, <&ssphy_1>;
                                phy-names = "usb2-phy", "usb3-phy";
                                snps,is-utmi-l1-suspend;
                                snps,hird-threshold = /bits/ 8 <0x0>;
                        compatible = "qcom,ipq8074-apcs-apps-global",
                                     "qcom,ipq6018-apcs-apps-global";
                        reg = <0x0b111000 0x1000>;
-                       clocks = <&a53pll>, <&xo>;
-                       clock-names = "pll", "xo";
+                       clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
+                       clock-names = "pll", "xo", "gpll0";
 
                        #clock-cells = <1>;
                        #mbox-cells = <1>;
                        };
                };
 
-               pcie1: pci@10000000 {
+               pcie1: pcie@10000000 {
                        compatible = "qcom,pcie-ipq8074";
                        reg = <0x10000000 0xf1d>,
                              <0x10000f20 0xa8>,
                        interrupt-names = "msi";
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc 0 142
+                       interrupt-map = <0 0 0 1 &intc 0 142
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_a */
-                                       <0 0 0 2 &intc 0 143
+                                       <0 0 0 2 &intc 0 143
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_b */
-                                       <0 0 0 3 &intc 0 144
+                                       <0 0 0 3 &intc 0 144
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_c */
-                                       <0 0 0 4 &intc 0 145
+                                       <0 0 0 4 &intc 0 145
                                         IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
                        clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
                        status = "disabled";
                };
 
-               pcie0: pci@20000000 {
+               pcie0: pcie@20000000 {
                        compatible = "qcom,pcie-ipq8074-gen3";
                        reg = <0x20000000 0xf1d>,
                              <0x20000f20 0xa8>,
                        interrupt-names = "msi";
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc 0 75
+                       interrupt-map = <0 0 0 1 &intc 0 75
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_a */
-                                       <0 0 0 2 &intc 0 78
+                                       <0 0 0 2 &intc 0 78
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_b */
-                                       <0 0 0 3 &intc 0 79
+                                       <0 0 0 3 &intc 0 79
                                         IRQ_TYPE_LEVEL_HIGH>, /* int_c */
-                                       <0 0 0 4 &intc 0 83
+                                       <0 0 0 4 &intc 0 83
                                         IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
                        clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
diff --git a/src/arm64/qcom/ipq9574-rdp-common.dtsi b/src/arm64/qcom/ipq9574-rdp-common.dtsi
new file mode 100644 (file)
index 0000000..91e104b
--- /dev/null
@@ -0,0 +1,169 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ9574 RDP board common device tree source
+ *
+ * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "ipq9574.dtsi"
+
+/ {
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       regulator_fixed_3p3: s3300 {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-name = "fixed_3p3";
+       };
+
+       regulator_fixed_0p925: s0925 {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <925000>;
+               regulator-max-microvolt = <925000>;
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-name = "fixed_0p925";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               button-wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&gpio_leds_default>;
+               pinctrl-names = "default";
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WLAN;
+                       gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+       };
+};
+
+&blsp1_spi0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&blsp1_uart2 {
+       pinctrl-0 = <&uart2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-mp5496-regulators";
+
+               ipq9574_s1: s1 {
+               /*
+                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
+                * During regulator registration, kernel not knowing the initial voltage,
+                * considers it as zero and brings up the regulators with minimum supported voltage.
+                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
+                * the regulators are brought up with 725mV which is sufficient for all the
+                * corner parts to operate at 800MHz
+                */
+                       regulator-min-microvolt = <725000>;
+                       regulator-max-microvolt = <1075000>;
+               };
+
+               mp5496_l2: l2 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+       };
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       spi_0_pins: spi-0-state {
+               pins = "gpio11", "gpio12", "gpio13", "gpio14";
+               function = "blsp0_spi";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio37";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       gpio_leds_default: gpio-leds-default-state {
+               pins = "gpio64";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
+
+&usb_0_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_0_qmpphy {
+       vdda-pll-supply = <&mp5496_l2>;
+       vdda-phy-supply = <&regulator_fixed_0p925>;
+
+       status = "okay";
+};
+
+&usb_0_qusbphy {
+       vdd-supply = <&regulator_fixed_0p925>;
+       vdda-pll-supply = <&mp5496_l2>;
+       vdda-phy-dpdm-supply = <&regulator_fixed_3p3>;
+
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&xo_board_clk {
+       clock-frequency = <24000000>;
+};
index 2b093e02637ba5537d741fe6c0f15deb8fc82ae1..f4f9199d4ab1e51ccf4dc30f4aa980a52a5643cc 100644 (file)
@@ -8,58 +8,12 @@
 
 /dts-v1/;
 
-#include "ipq9574.dtsi"
+#include "ipq9574-rdp-common.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C2";
        compatible = "qcom,ipq9574-ap-al02-c2", "qcom,ipq9574";
 
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&blsp1_spi0 {
-       pinctrl-0 = <&spi_0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       flash@0 {
-               compatible = "micron,n25q128a11", "jedec,spi-nor";
-               reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               spi-max-frequency = <50000000>;
-       };
-};
-
-&blsp1_uart2 {
-       pinctrl-0 = <&uart2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&rpm_requests {
-       regulators {
-               compatible = "qcom,rpm-mp5496-regulators";
-
-               ipq9574_s1: s1 {
-               /*
-                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
-                * During regulator registration, kernel not knowing the initial voltage,
-                * considers it as zero and brings up the regulators with minimum supported voltage.
-                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
-                * the regulators are brought up with 725mV which is sufficient for all the
-                * corner parts to operate at 800MHz
-                */
-                       regulator-min-microvolt = <725000>;
-                       regulator-max-microvolt = <1075000>;
-               };
-       };
 };
 
 &sdhc_1 {
        status = "okay";
 };
 
-&sleep_clk {
-       clock-frequency = <32000>;
-};
-
 &tlmm {
        sdc_default_state: sdc-default-state {
                clk-pins {
                        bias-pull-down;
                };
        };
-
-       spi_0_pins: spi-0-state {
-               pins = "gpio11", "gpio12", "gpio13", "gpio14";
-               function = "blsp0_spi";
-               drive-strength = <8>;
-               bias-disable;
-       };
-};
-
-&xo_board_clk {
-       clock-frequency = <24000000>;
 };
index 877026ccc6e25761f977369096ac073f8d5ece88..1bb8d96c9a8270f3ff3366812e34f5ee7eb44d6c 100644 (file)
@@ -8,69 +8,11 @@
 
 /dts-v1/;
 
-#include "ipq9574.dtsi"
+#include "ipq9574-rdp-common.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7";
        compatible = "qcom,ipq9574-ap-al02-c7", "qcom,ipq9574";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       regulator_fixed_3p3: s3300 {
-               compatible = "regulator-fixed";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-boot-on;
-               regulator-always-on;
-               regulator-name = "fixed_3p3";
-       };
-
-       regulator_fixed_0p925: s0925 {
-               compatible = "regulator-fixed";
-               regulator-min-microvolt = <925000>;
-               regulator-max-microvolt = <925000>;
-               regulator-boot-on;
-               regulator-always-on;
-               regulator-name = "fixed_0p925";
-       };
-};
-
-&blsp1_uart2 {
-       pinctrl-0 = <&uart2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&rpm_requests {
-       regulators {
-               compatible = "qcom,rpm-mp5496-regulators";
-
-               ipq9574_s1: s1 {
-               /*
-                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
-                * During regulator registration, kernel not knowing the initial voltage,
-                * considers it as zero and brings up the regulators with minimum supported voltage.
-                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
-                * the regulators are brought up with 725mV which is sufficient for all the
-                * corner parts to operate at 800MHz
-                */
-                       regulator-min-microvolt = <725000>;
-                       regulator-max-microvolt = <1075000>;
-               };
-
-               mp5496_l2: l2 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-       };
 };
 
 &sdhc_1 {
        status = "okay";
 };
 
-&sleep_clk {
-       clock-frequency = <32000>;
-};
-
 &tlmm {
        sdc_default_state: sdc-default-state {
                clk-pins {
                };
        };
 };
-
-&usb_0_dwc3 {
-       dr_mode = "host";
-};
-
-&usb_0_qmpphy {
-       vdda-pll-supply = <&mp5496_l2>;
-       vdda-phy-supply = <&regulator_fixed_0p925>;
-
-       status = "okay";
-};
-
-&usb_0_qusbphy {
-       vdd-supply = <&regulator_fixed_0p925>;
-       vdda-pll-supply = <&mp5496_l2>;
-       vdda-phy-dpdm-supply = <&regulator_fixed_3p3>;
-
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
-
-&xo_board_clk {
-       clock-frequency = <24000000>;
-};
index c8fa54e1a62cc0c0815a191d1e1996c45ffcb6d8..d36d1078763ec329c4a3ed5184da7d167ca010a7 100644 (file)
@@ -8,73 +8,10 @@
 
 /dts-v1/;
 
-#include "ipq9574.dtsi"
+#include "ipq9574-rdp-common.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C6";
        compatible = "qcom,ipq9574-ap-al02-c6", "qcom,ipq9574";
 
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&blsp1_spi0 {
-       pinctrl-0 = <&spi_0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       flash@0 {
-               compatible = "micron,n25q128a11", "jedec,spi-nor";
-               reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               spi-max-frequency = <50000000>;
-       };
-};
-
-&blsp1_uart2 {
-       pinctrl-0 = <&uart2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&rpm_requests {
-       regulators {
-               compatible = "qcom,rpm-mp5496-regulators";
-
-               ipq9574_s1: s1 {
-               /*
-                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
-                * During regulator registration, kernel not knowing the initial voltage,
-                * considers it as zero and brings up the regulators with minimum supported voltage.
-                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
-                * the regulators are brought up with 725mV which is sufficient for all the
-                * corner parts to operate at 800MHz
-                */
-                       regulator-min-microvolt = <725000>;
-                       regulator-max-microvolt = <1075000>;
-               };
-       };
-};
-
-&sleep_clk {
-       clock-frequency = <32000>;
-};
-
-&tlmm {
-       spi_0_pins: spi-0-state {
-               pins = "gpio11", "gpio12", "gpio13", "gpio14";
-               function = "blsp0_spi";
-               drive-strength = <8>;
-               bias-disable;
-       };
-};
-
-&xo_board_clk {
-       clock-frequency = <24000000>;
 };
index f01de6628c3b115c43d19265ad66929864f70120..c30c9fbedf26bf557fef85449a059217864cde4c 100644 (file)
@@ -8,73 +8,10 @@
 
 /dts-v1/;
 
-#include "ipq9574.dtsi"
+#include "ipq9574-rdp-common.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C8";
        compatible = "qcom,ipq9574-ap-al02-c8", "qcom,ipq9574";
 
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&blsp1_spi0 {
-       pinctrl-0 = <&spi_0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       flash@0 {
-               compatible = "micron,n25q128a11", "jedec,spi-nor";
-               reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               spi-max-frequency = <50000000>;
-       };
-};
-
-&blsp1_uart2 {
-       pinctrl-0 = <&uart2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&rpm_requests {
-       regulators {
-               compatible = "qcom,rpm-mp5496-regulators";
-
-               ipq9574_s1: s1 {
-               /*
-                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
-                * During regulator registration, kernel not knowing the initial voltage,
-                * considers it as zero and brings up the regulators with minimum supported voltage.
-                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
-                * the regulators are brought up with 725mV which is sufficient for all the
-                * corner parts to operate at 800MHz
-                */
-                       regulator-min-microvolt = <725000>;
-                       regulator-max-microvolt = <1075000>;
-               };
-       };
-};
-
-&sleep_clk {
-       clock-frequency = <32000>;
-};
-
-&tlmm {
-       spi_0_pins: spi-0-state {
-               pins = "gpio11", "gpio12", "gpio13", "gpio14";
-               function = "blsp0_spi";
-               drive-strength = <8>;
-               bias-disable;
-       };
-};
-
-&xo_board_clk {
-       clock-frequency = <24000000>;
 };
index 6efae3426cb84055b8449030561946e58af3df75..0dc382f5d5ecdfc238bca1fa402b845b418cbce1 100644 (file)
@@ -8,73 +8,9 @@
 
 /dts-v1/;
 
-#include "ipq9574.dtsi"
+#include "ipq9574-rdp-common.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C9";
        compatible = "qcom,ipq9574-ap-al02-c9", "qcom,ipq9574";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&blsp1_spi0 {
-       pinctrl-0 = <&spi_0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       flash@0 {
-               compatible = "micron,n25q128a11", "jedec,spi-nor";
-               reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               spi-max-frequency = <50000000>;
-       };
-};
-
-&blsp1_uart2 {
-       pinctrl-0 = <&uart2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&rpm_requests {
-       regulators {
-               compatible = "qcom,rpm-mp5496-regulators";
-
-               ipq9574_s1: s1 {
-               /*
-                * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders.
-                * During regulator registration, kernel not knowing the initial voltage,
-                * considers it as zero and brings up the regulators with minimum supported voltage.
-                * Update the regulator-min-microvolt with SVS voltage of 725mV so that
-                * the regulators are brought up with 725mV which is sufficient for all the
-                * corner parts to operate at 800MHz
-                */
-                       regulator-min-microvolt = <725000>;
-                       regulator-max-microvolt = <1075000>;
-               };
-       };
-};
-
-&sleep_clk {
-       clock-frequency = <32000>;
-};
-
-&tlmm {
-       spi_0_pins: spi-0-state {
-               pins = "gpio11", "gpio12", "gpio13", "gpio14";
-               function = "blsp0_spi";
-               drive-strength = <8>;
-               bias-disable;
-       };
-};
-
-&xo_board_clk {
-       clock-frequency = <24000000>;
 };
index 8a72ad4afd03201c4cbb607d97ce8d1f78fa1c51..5f83ee42a71942c9089e56781c9d839fcc542b2b 100644 (file)
        };
 
        cpu_opp_table: opp-table-cpu {
-               compatible = "operating-points-v2";
+               compatible = "operating-points-v2-kryo-cpu";
                opp-shared;
+               nvmem-cells = <&cpu_speed_bin>;
 
                opp-936000000 {
                        opp-hz = /bits/ 64 <936000000>;
                        opp-microvolt = <725000>;
+                       opp-supported-hw = <0xf>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1104000000 {
                        opp-hz = /bits/ 64 <1104000000>;
                        opp-microvolt = <787500>;
+                       opp-supported-hw = <0xf>;
+                       clock-latency-ns = <200000>;
+               };
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <862500>;
+                       opp-supported-hw = <0xf>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1416000000 {
                        opp-hz = /bits/ 64 <1416000000>;
                        opp-microvolt = <862500>;
+                       opp-supported-hw = <0x7>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1488000000 {
                        opp-hz = /bits/ 64 <1488000000>;
                        opp-microvolt = <925000>;
+                       opp-supported-hw = <0x7>;
                        clock-latency-ns = <200000>;
                };
 
                opp-1800000000 {
                        opp-hz = /bits/ 64 <1800000000>;
                        opp-microvolt = <987500>;
+                       opp-supported-hw = <0x5>;
                        clock-latency-ns = <200000>;
                };
 
                opp-2208000000 {
                        opp-hz = /bits/ 64 <2208000000>;
                        opp-microvolt = <1062500>;
+                       opp-supported-hw = <0x1>;
                        clock-latency-ns = <200000>;
                };
        };
                        reg = <0x000a4000 0x5a1>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       cpu_speed_bin: cpu-speed-bin@15 {
+                               reg = <0x15 0x2>;
+                               bits = <7 2>;
+                       };
                };
 
                cryptobam: dma-controller@704000 {
                                     "qcom,ipq6018-apcs-apps-global";
                        reg = <0x0b111000 0x1000>;
                        #clock-cells = <1>;
-                       clocks = <&a73pll>, <&xo_board_clk>;
-                       clock-names = "pll", "xo";
+                       clocks = <&a73pll>, <&xo_board_clk>, <&gcc GPLL0>;
+                       clock-names = "pll", "xo", "gpll0";
                        #mbox-cells = <1>;
                };
 
index 57a74eea1005a317356e9f79528d20e8a8ad6214..b32c7a97394d8d973e6ed387b845a6c3f4da7862 100644 (file)
@@ -7,6 +7,7 @@
 #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>
 
 /*
  * NOTE: The original firmware from Acer can only boot 32-bit kernels.
        };
 };
 
+&blsp_i2c4 {
+       status = "okay";
+
+       led-controller@30 {
+               compatible = "kinetic,ktd2026";
+               reg = <0x30>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       reg = <0>;
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+       };
+};
+
 &blsp_i2c5 {
        status = "okay";
 
index aa4c1ab1e6737f81cc7590dddaf4b57705e2f01d..3459145516a12ae8e054e24b3ed9b73f9d79905a 100644 (file)
@@ -3,6 +3,8 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
                stdout-path = "serial0";
        };
 
+       reserved-memory {
+               /delete-node/ reserved@86680000;
+               /delete-node/ rmtfs@86700000;
+
+               rmtfs: rmtfs@86680000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0x86680000 0x0 0x160000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
                };
        };
 
+       reg_headphones_avdd: regulator-headphones-avdd {
+               compatible = "regulator-fixed";
+               regulator-name = "headphones_avdd";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-0 = <&headphones_avdd_default>;
+               pinctrl-names = "default";
+       };
+
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
                id-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;
        };
 };
 
-&blsp_uart2 {
+&blsp_i2c3 {
        status = "okay";
+
+       headphones: audio-codec@10 {
+               compatible = "asahi-kasei,ak4375";
+               reg = <0x10>;
+               avdd-supply = <&reg_headphones_avdd>;
+               tvdd-supply = <&pm8916_l6>;
+               pdn-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&headphones_pdn_default>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+       };
+
+       speaker_codec_top: audio-codec@34 {
+               compatible = "nxp,tfa9897";
+               reg = <0x34>;
+               vddd-supply = <&pm8916_l6>;
+               rcv-gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&speaker_top_default>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Top";
+               #sound-dai-cells = <0>;
+       };
+
+       speaker_codec_bottom: audio-codec@36 {
+               compatible = "nxp,tfa9897";
+               reg = <0x36>;
+               vddd-supply = <&pm8916_l6>;
+               rcv-gpios = <&tlmm 111 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&speaker_bottom_default>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Bottom";
+               #sound-dai-cells = <0>;
+       };
 };
 
 &blsp_i2c4 {
        };
 };
 
+&blsp_uart2 {
+       status = "okay";
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5000000>;
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 100 120 180 500>;
+       qcom,mbhc-vthreshold-high = <75 100 120 180 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
 };
 
+&q6afedai {
+       dai@18 {
+               reg = <SECONDARY_MI2S_RX>;
+               qcom,sd-lines = <0>;
+       };
+       dai@22 {
+               reg = <QUATERNARY_MI2S_RX>;
+               qcom,sd-lines = <0>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 };
        cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       /* Add pin switches for speakers to allow disabling them individually */
+       model = "alcatel-idol3";
+       widgets =
+               "Speaker", "Speaker Top",
+               "Speaker", "Speaker Bottom";
+       pin-switches = "Speaker Top", "Speaker Bottom";
+       audio-routing =
+               "Speaker Top", "Speaker Top OUT",
+               "Speaker Bottom", "Speaker Bottom OUT",
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+
+       pinctrl-0 = <&cdc_pdm_default &pri_mi2s_default &pri_mi2s_ws_default &sec_mi2s_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &pri_mi2s_sleep &pri_mi2s_ws_sleep &sec_mi2s_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       sound_link_backend2: backend2-dai-link {
+               link-name = "Quaternary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&speaker_codec_top>, <&speaker_codec_bottom>;
+               };
+       };
+};
+
+&sound_link_backend0 {
+       /* Primary MI2S is not used, replace with Secondary MI2S for headphones */
+       link-name = "Secondary MI2S";
+
+       cpu {
+               sound-dai = <&q6afedai SECONDARY_MI2S_RX>;
+       };
+       platform {
+               sound-dai = <&q6routing>;
+       };
+       codec {
+               sound-dai = <&headphones>;
+       };
+};
+
 &usb {
        status = "okay";
        extcon = <&usb_id>, <&usb_id>;
        status = "okay";
 };
 
+/* Only some of the pins are used */
+&pri_mi2s_default {
+       pins = "gpio113", "gpio115";
+};
+
+&pri_mi2s_sleep {
+       pins = "gpio113", "gpio115";
+};
+
 &tlmm {
        accel_int_default: accel-int-default-state {
                pins = "gpio31";
                bias-disable;
        };
 
+       headphones_avdd_default: headphones-avdd-default-state {
+               pins = "gpio121";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       headphones_pdn_default: headphones-pdn-default-state {
+               pins = "gpio114";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        /*
         * The OEM wired an additional GPIO to be asserted so that
         * the si-en,sn3190 LED IC works. Since this GPIO is not
                bias-disable;
        };
 
+       speaker_bottom_default: speaker-bottom-default-state {
+               pins = "gpio111";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       speaker_top_default: speaker-top-default-state {
+               pins = "gpio50";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        ts_int_reset_default: ts-int-reset-default-state {
                pins = "gpio13", "gpio100";
                function = "gpio";
index a8be6ff66893f3afd41424b82fe34c6daf1b69c4..77618c7374dfe29cf5660e0834aa2b0fa6f3d67c 100644 (file)
@@ -3,6 +3,8 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5500000>;
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,micbias1-ext-cap;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_rpm_regulators {
        pm8916_l17: l17 {
                regulator-min-microvolt = <2850000>;
        cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+};
+
 &usb {
        status = "okay";
        extcon = <&usb_id>, <&usb_id>;
index 47d1c5cb13f4ee3d8a13f92cd9cc64641aebd176..3a3e794c022f91a463086ca6290257977a70528f 100644 (file)
@@ -3,6 +3,8 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
        /*
         * For some reason, the signed wcnss firmware is not relocatable.
-        * It must be loaded at 0x8b600000. All other firmware is relocatable,
-        * so place wcnss at the fixed address and then all other firmware
-        * regions will be automatically allocated at a fitting place.
+        * It must be loaded at 0x8b600000. Unfortunately, this also means that
+        * mpss_mem does not fit when loaded to the typical address at 0x86800000.
+        *
+        * Load wcnss_mem to the fixed address and relocate mpss_mem to the next
+        * working higher address. For some reason the modem firmware does not
+        * boot when placed at 0x8a800000 to 0x8e800000.
         */
        reserved-memory {
+               /delete-node/ mpss@86800000;
                /delete-node/ wcnss;
 
                wcnss_mem: wcnss@8b600000 {
                        reg = <0x0 0x8b600000 0x0 0x600000>;
                        no-map;
                };
+
+               mpss_mem: mpss@8e800000 {
+                       reg = <0x0 0x8e800000 0x0 0x5000000>;
+                       no-map;
+               };
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               voltage-min-design-microvolt = <3400000>;
+               voltage-max-design-microvolt = <4350000>;
+               energy-full-design-microwatt-hours = <9500000>;
+               charge-full-design-microamp-hours = <2500000>;
+
+               ocv-capacity-celsius = <25>;
+               ocv-capacity-table-0 = <4330000 100>, <4265000 95>,
+                       <4208000 90>, <4153000 85>, <4100000 80>, <4049000 75>,
+                       <4001000 70>, <3962000 65>, <3919000 60>, <3872000 55>,
+                       <3839000 50>, <3817000 45>, <3798000 40>, <3783000 35>,
+                       <3767000 30>, <3747000 25>, <3729000 20>, <3709000 16>,
+                       <3688000 13>, <3681000 11>, <3680000 10>, <3679000 9>,
+                       <3677000 8>, <3674000 7>, <3666000 6>, <3641000 5>,
+                       <3597000 4>, <3537000 3>, <3457000 2>, <3336000 1>,
+                       <3000000 0>;
        };
 
        gpio-keys {
                #size-cells = <0>;
 
                vcc-supply = <&pm8916_l17>;
+               vio-supply = <&pm8916_l6>;
 
                led@0 {
                        reg = <0>;
        status = "okay";
 };
 
+&pm8916_bms {
+       status = "okay";
+
+       monitored-battery = <&battery>;
+       power-supplies = <&pm8916_charger>;
+};
+
+&pm8916_charger {
+       status = "okay";
+
+       monitored-battery = <&battery>;
+
+       qcom,fast-charge-safe-current = <900000>;
+       qcom,fast-charge-safe-voltage = <4300000>;
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        };
 };
 
-&pm8916_usbin {
-       status = "okay";
-};
-
 &pm8916_vib {
        status = "okay";
 };
        non-removable;
 };
 
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS Internal1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS Internal3";
+};
+
 &usb {
        status = "okay";
        dr_mode = "peripheral";
-       extcon = <&pm8916_usbin>;
+       extcon = <&pm8916_charger>;
 };
 
 &usb_hs_phy {
-       extcon = <&pm8916_usbin>;
+       extcon = <&pm8916_charger>;
 };
 
 &venus {
index 41cadb906b98cc5193b4a21b19f3824be0f1da05..3b7fdb6797a942298ac399a3a434b3cdc2795396 100644 (file)
@@ -3,9 +3,12 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 / {
        model = "BQ Aquaris X5 (Longcheer L8910)";
                stdout-path = "serial0";
        };
 
+       speaker_amp: audio-amplifier {
+               compatible = "awinic,aw8738";
+               mode-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
+               awinic,mode = <5>;
+               sound-name-prefix = "Speaker Amp";
+
+               pinctrl-0 = <&spk_ext_pa_default>;
+               pinctrl-names = "default";
+       };
+
        flash-led-controller {
                compatible = "ocs,ocp8110";
                enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
        };
 };
 
+&blsp_i2c2 {
+       status = "okay";
+
+       led-controller@30 {
+               compatible = "kinetic,ktd2026";
+               reg = <0x30>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vin-supply = <&pm8916_l17>;
+               vio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&status_led_default>;
+               pinctrl-names = "default";
+
+               multi-led {
+                       color = <LED_COLOR_ID_RGB>;
+                       function = LED_FUNCTION_STATUS;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+               };
+       };
+};
+
 &blsp_i2c3 {
        status = "okay";
 
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5000000>;
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 100 120 180 500>;
+       qcom,mbhc-vthreshold-high = <75 100 120 180 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
+&pm8916_gpios {
+       status_led_default: status-led-default-state {
+               pins = "gpio3";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <PM8916_GPIO_VPH>;
+               bias-disable;
+               output-high;
+       };
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       /*
+        * Provide widgets/pin-switches to allow enabling speaker separately.
+        * The hardware does not provide a way to disable the output via the
+        * headphone jack when the speaker is enabled.
+        */
+       model = "bq-paella";
+       widgets =
+               "Speaker", "Speaker",
+               "Headphone", "Headphones";
+       pin-switches = "Speaker";
+       audio-routing =
+               "Speaker", "Speaker Amp OUT",
+               "Speaker Amp IN", "HPH_R",
+               "Headphones", "HPH_L",
+               "Headphones", "HPH_R",
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+       aux-devs = <&speaker_amp>;
+};
+
 &usb {
        status = "okay";
        extcon = <&usb_id>, <&usb_id>;
                bias-disable;
        };
 
+       spk_ext_pa_default: spk-ext-pa-default-state {
+               pins = "gpio114";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        usb_id_default: usb-id-default-state {
                pins = "gpio110";
                function = "gpio";
diff --git a/src/arm64/qcom/msm8916-modem-qdsp6.dtsi b/src/arm64/qcom/msm8916-modem-qdsp6.dtsi
new file mode 100644 (file)
index 0000000..0399616
--- /dev/null
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * msm8916-modem-qdsp6.dtsi describes the typical modem setup on MSM8916 devices
+ * (or similar SoCs) with audio routed via the QDSP6 services provided by the
+ * modem firmware. The digital/analog codec in the SoC/PMIC is used by default,
+ * but boards can define additional codecs by adding additional backend DAI links.
+ */
+
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
+
+&apr {
+       status = "okay";
+};
+
+&bam_dmux {
+       status = "okay";
+};
+
+&bam_dmux_dma {
+       status = "okay";
+};
+
+&lpass {
+       status = "reserved"; /* Controlled by QDSP6 */
+};
+
+&lpass_codec {
+       status = "okay";
+};
+
+&mba_mem {
+       status = "okay";
+};
+
+&mpss {
+       status = "okay";
+};
+
+&mpss_mem {
+       status = "okay";
+};
+
+&pm8916_codec {
+       status = "okay";
+};
+
+&q6afedai {
+       dai@16 {
+               reg = <PRIMARY_MI2S_RX>;
+               qcom,sd-lines = <0 1>;
+       };
+       dai@20 {
+               reg = <TERTIARY_MI2S_TX>;
+               qcom,sd-lines = <0 1>;
+       };
+};
+
+&q6asmdai {
+       dai@0 {
+               reg = <0>;
+               direction = <Q6ASM_DAI_RX>;
+       };
+       dai@1 {
+               reg = <1>;
+               direction = <Q6ASM_DAI_TX>;
+       };
+       dai@2 {
+               reg = <2>;
+               direction = <Q6ASM_DAI_RX>;
+       };
+       dai@3 {
+               reg = <3>;
+               direction = <Q6ASM_DAI_RX>;
+               is-compress-dai;
+       };
+};
+
+&sound {
+       compatible = "qcom,msm8916-qdsp6-sndcard";
+       model = "msm8916";
+
+       pinctrl-0 = <&cdc_pdm_default>;
+       pinctrl-1 = <&cdc_pdm_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+
+       frontend0-dai-link {
+               link-name = "MultiMedia1";
+
+               cpu {
+                       sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+               };
+       };
+
+       frontend1-dai-link {
+               link-name = "MultiMedia2";
+
+               cpu {
+                       sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
+               };
+       };
+
+       frontend2-dai-link {
+               link-name = "MultiMedia3";
+
+               cpu {
+                       sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+               };
+       };
+
+       frontend3-dai-link {
+               link-name = "MultiMedia4";
+
+               cpu {
+                       sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
+               };
+       };
+
+       sound_link_backend0: backend0-dai-link {
+               link-name = "Primary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
+               };
+       };
+
+       sound_link_backend1: backend1-dai-link {
+               link-name = "Tertiary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai TERTIARY_MI2S_TX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
+               };
+       };
+};
index 0b29132b74e1da1cec11efb9cd2e90df168790c9..2937495940ea02abf7d7d537160df8be171f9dd2 100644 (file)
@@ -1,10 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0-only
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
 
 / {
        aliases {
        };
 };
 
+&blsp_i2c1 {
+       status = "okay";
+
+       speaker_codec: audio-codec@34 {
+               compatible = "nxp,tfa9895";
+               reg = <0x34>;
+               vddd-supply = <&pm8916_l5>;
+               sound-name-prefix = "Speaker";
+               #sound-dai-cells = <0>;
+       };
+};
+
 &blsp_i2c2 {
        status = "okay";
 
        status = "okay";
 };
 
+/*
+ * For some reason the speaker amplifier is connected to the second SD line
+ * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
+ * device tree, otherwise audio will seemingly play fine on the wrong SD line
+ * but the speaker stays silent.
+ *
+ * When routing audio via QDSP6 (the default) the &lpass node is reserved and
+ * the definitions from &q6afedai are used. When the modem is disabled audio can
+ * be alternatively routed directly to the LPASS hardware with reduced latency.
+ * The definitions for &lpass are here for completeness to simplify changing the
+ * setup with minor changes to the DT (either manually or with DT overlays).
+ */
+&lpass {
+       dai-link@3 {
+               reg = <MI2S_QUATERNARY>;
+               qcom,playback-sd-lines = <1>;
+       };
+};
+
 &mdss {
        status = "okay";
 };
        pinctrl-1 = <&mdss_sleep>;
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5400000>;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        };
 };
 
+&q6afedai {
+       dai@22 {
+               reg = <QUATERNARY_MI2S_RX>;
+               qcom,sd-lines = <1>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 };
        cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       model = "samsung-a2015";
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       sound_link_backend2: backend2-dai-link {
+               link-name = "Quaternary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&speaker_codec>;
+               };
+       };
+};
+
 &usb {
        status = "okay";
        extcon = <&muic>, <&muic>;
index f5a8083695182a12dc3de23edd7e52a9b6d9920b..3b934f5eba473247298bdccd90a47f1bf6424130 100644 (file)
        };
 };
 
-&touchkey {
-       vcc-supply = <&reg_touch_key>;
-       vdd-supply = <&reg_key_led>;
-};
-
 &accelerometer {
        mount-matrix = "0", "1", "0",
                       "1", "0", "0",
        remote-endpoint = <&panel_in>;
 };
 
+&touchkey {
+       vcc-supply = <&reg_touch_key>;
+       vdd-supply = <&reg_key_led>;
+};
+
 &vibrator {
        status = "okay";
 };
index 0824ab041d805d80ead62addaedbfc6ff5802eef..3c49dac92d2d4ad88074ec547264acb0398bcd29 100644 (file)
        };
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5a00000>;
+};
+
 &reg_motor_vdd {
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
index 3f145dde4059f86992a40002496a7bc7ec59bb4b..5882b3a593b8c9cf850690ece85f7a0802b32e16 100644 (file)
        status = "disabled";
 };
 
+&sound {
+       model = "samsung-gmax"; /* No secondary microphone */
+};
+
 &tlmm {
        gpio_leds_default: gpio-led-default-state {
                pins = "gpio60";
index c19cf20d74272c38f58e497cb15ac8b02a635933..fbd2caf405d5f686a40a59ff7e0bfc78f164e03c 100644 (file)
@@ -3,9 +3,12 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
 
 / {
        aliases {
        };
 };
 
-&blsp_i2c4 {
-       status = "okay";
-
-       fuelgauge@36 {
-               compatible = "maxim,max77849-battery";
-               reg = <0x36>;
-
-               maxim,rsns-microohm = <10000>;
-               maxim,over-heat-temp = <600>;
-               maxim,over-volt = <4400>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
-
-               pinctrl-0 = <&fuelgauge_int_default>;
-               pinctrl-names = "default";
-       };
-};
-
 &blsp_i2c2 {
        status = "okay";
 
        };
 };
 
+&blsp_i2c4 {
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max77849-battery";
+               reg = <0x36>;
+
+               maxim,rsns-microohm = <10000>;
+               maxim,over-heat-temp = <600>;
+               maxim,over-volt = <4400>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&fuelgauge_int_default>;
+               pinctrl-names = "default";
+       };
+};
+
 &blsp_uart2 {
        status = "okay";
 };
 
+/*
+ * For some reason the speaker amplifier is connected to the second SD line
+ * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
+ * device tree, otherwise audio will seemingly play fine on the wrong SD line
+ * but the speaker stays silent.
+ *
+ * When routing audio via QDSP6 (the default) the &lpass node is reserved and
+ * the definitions from &q6afedai are used. When the modem is disabled audio can
+ * be alternatively routed directly to the LPASS hardware with reduced latency.
+ * The definitions for &lpass are here for completeness to simplify changing the
+ * setup with minor changes to the DT (either manually or with DT overlays).
+ */
+&lpass {
+       dai-link@3 {
+               reg = <MI2S_QUATERNARY>;
+               qcom,playback-sd-lines = <1>;
+       };
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5400000>;
+};
+
 &pm8916_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
        status = "okay";
 };
 
+&q6afedai {
+       dai@22 {
+               reg = <QUATERNARY_MI2S_RX>;
+               qcom,sd-lines = <1>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 };
        status = "okay";
 };
 
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+
+       sound_link_backend2: backend2-dai-link {
+               link-name = "Quaternary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&speaker_codec>;
+               };
+       };
+};
+
 &usb {
        dr_mode = "peripheral";
        extcon = <&pm8916_usbin>;
index 75c4854ecd6482f4d40739247c8bf5069fec0d41..5b34529b816c8458c02b0c044779aeac7138c987 100644 (file)
@@ -9,6 +9,14 @@
        compatible = "samsung,gt510", "qcom,msm8916";
        chassis-type = "tablet";
 
+       speaker_codec: audio-codec {
+               compatible = "maxim,max98357a";
+               sdmode-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
+               #sound-dai-cells = <0>;
+               pinctrl-0 = <&audio_sdmode_default>;
+               pinctrl-names = "default";
+       };
+
        clk_pwm: pwm {
                compatible = "clk-pwm";
                #pwm-cells = <2>;
        };
 };
 
+&gpu {
+       status = "okay";
+};
+
 &mdss {
        status = "okay";
 };
        remote-endpoint = <&panel_in>;
 };
 
+&sound {
+       model = "samsung-gt510";
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
+       pinctrl-names = "default", "sleep";
+};
+
 &tlmm {
+       audio_sdmode_default: audio-sdmode-default-state {
+               pins = "gpio55";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        buckbooster_en_default: buckbooster-en-default-state {
                pins = "gpio51";
                function = "gpio";
index 11359bcc27b3d9f323a72bb38d798205ec1a9b7f..579312ed53ce1a3654c4163774e719a9c07e6906 100644 (file)
                pinctrl-names = "default";
        };
 
+       i2c-amplifier {
+               compatible = "i2c-gpio";
+               sda-gpios = <&tlmm 55 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 56 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+               pinctrl-0 = <&amp_i2c_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               speaker_codec: audio-codec@34 {
+                       compatible = "nxp,tfa9895";
+                       reg = <0x34>;
+                       vddd-supply = <&pm8916_l5>;
+                       sound-name-prefix = "Speaker";
+                       #sound-dai-cells = <0>;
+               };
+       };
+
        vibrator {
                compatible = "gpio-vibrator";
                enable-gpios = <&tlmm 76 GPIO_ACTIVE_HIGH>;
        };
 };
 
+&gpu {
+       status = "okay";
+};
+
 &mdss {
        status = "okay";
 };
        remote-endpoint = <&panel_in>;
 };
 
+&sound {
+       model = "samsung-a2015";
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default &secondary_mic_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep &secondary_mic_default>;
+       pinctrl-names = "default", "sleep";
+};
+
 &tlmm {
+       amp_i2c_default: amp-i2c-default-state {
+               pins = "gpio55", "gpio56";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        buckbooster_en_default: buckbooster-en-default-state {
                pins = "gpio8";
                function = "gpio";
                bias-disable;
        };
 
+       secondary_mic_default: secondary-mic-default-state {
+               pins = "gpio98";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
        tsp_int_default: tsp-int-default-state {
                pins = "gpio13";
                function = "gpio";
index fe59be3505fe1b4c69751ebb056eaeb3de77d217..5ca2ada266f495e4584a5143a8cce6f1f1c4ad78 100644 (file)
@@ -1,6 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0-only
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5800000>;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       model = "msm8916-1mic";
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+};
+
 &usb {
        extcon = <&muic>, <&muic>;
        status = "okay";
index 58c2f5a70e785aefc2750fe9742428128200114f..ba8650971d6a95ff233b7d6f420e6713ff399b07 100644 (file)
        status = "disabled";
 };
 
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+};
+
 &touchscreen {
        /* FIXME: Missing sm5703-mfd driver to power up vdd-supply */
 };
index 68da2a2d30774d2b5fd81cd55f57e33818a55e9e..5ce8f1350abcfaa186c88cae9ca23ef07a87314a 100644 (file)
@@ -6,6 +6,8 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5a00000>;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        no-1-8-v;
 };
 
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+};
+
 &usb {
        status = "okay";
        extcon = <&muic>, <&muic>;
index 6fe1850ba20e9ebde315642f1c620e9a4deb7146..f3499750089115ee1f2a19b1e54c48f9c033c3d0 100644 (file)
        gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
 };
 
-&led_r {
-       gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>;
+&led_b {
+       gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
        gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
 };
 
-&led_b {
-       gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
+&led_r {
+       gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>;
 };
 
 &button_default {
index 16d4a91022be6f9897c73abd1b56f0d860b1692d..6cb3911ba1c9ef68f97a141d000c83072e2d31ba 100644 (file)
        gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 };
 
-&led_r {
-       gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
+&led_b {
+       gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
        gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
 };
 
-&led_b {
-       gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+&led_r {
+       gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
 };
 
 &mpss {
index 419f35c1fc92ed4a3a39e80aca75381cfced7087..510b3b3c4e3c4223c64bcfa563e0e080d033d7b7 100644 (file)
@@ -6,6 +6,8 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
                stdout-path = "serial0";
        };
 
+       speaker_amp: audio-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Speaker Amp";
+               pinctrl-0 = <&speaker_amp_default>;
+               pinctrl-names = "default";
+       };
+
+       /*
+        * This seems to be actually an analog switch that either routes audio
+        * to the headphone jack or nowhere. Given that we need to enable a GPIO
+        * to get sound on headphones, modelling it as simple-audio-amplifier
+        * works just fine.
+        */
+       headphones_switch: audio-switch {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Headphones Switch";
+               pinctrl-0 = <&headphones_switch_default>;
+               pinctrl-names = "default";
+       };
+
        flash-led-controller {
                compatible = "ocs,ocp8110";
                enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
                #size-cells = <0>;
 
                vcc-supply = <&pm8916_l16>;
+               vio-supply = <&pm8916_l5>;
 
                led@0 {
                        reg = <0>;
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5100000>;
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 100 120 180 500>;
+       qcom,mbhc-vthreshold-high = <75 100 120 180 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        non-removable;
 };
 
+&sound {
+       /*
+        * Provide widgets/pin-switches to allow enabling speaker and headphones
+        * separately. Both are routed via the HPH_L/HPH_R pins of the codec.
+        */
+       model = "wt88047";
+       widgets =
+               "Speaker", "Speaker",
+               "Headphone", "Headphones";
+       pin-switches = "Speaker", "Headphones";
+       audio-routing =
+               "Speaker", "Speaker Amp OUTL",
+               "Speaker", "Speaker Amp OUTR",
+               "Speaker Amp INL", "HPH_R",
+               "Speaker Amp INR", "HPH_R",
+               "Headphones", "Headphones Switch OUTL",
+               "Headphones", "Headphones Switch OUTR",
+               "Headphones Switch INL", "HPH_L",
+               "Headphones Switch INR", "HPH_R",
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2";
+       aux-devs = <&speaker_amp>, <&headphones_switch>;
+};
+
 &usb {
        status = "okay";
        extcon = <&usb_id>, <&usb_id>;
                bias-pull-up;
        };
 
+       headphones_switch_default: headphones-switch-default-state {
+               pins = "gpio8";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        imu_default: imu-default-state {
                pins = "gpio115";
                function = "gpio";
                bias-disable;
        };
 
+       speaker_amp_default: speaker-amp-default-state {
+               pins = "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        touchscreen_default: touchscreen-default-state {
                touchscreen-pins {
                        pins = "gpio13";
index 5e6ba8c58bb577274dfb3b0253bfef7ee6c3f211..a98efcfe78b7093a399ffd7d808504898082f117 100644 (file)
        gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
 };
 
-&led_r {
-       gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+&led_b {
+       gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
 };
 
 &led_g {
        gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
 };
 
-&led_b {
-       gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+&led_r {
+       gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
 };
 
 &button_default {
index 4f799b536a92ad3778f8a507d03c0144ba6090ca..e423c57ddd41eceefaea483aaa343aa9b9bd1ee7 100644 (file)
@@ -10,6 +10,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,gcc-msm8916.h>
+#include <dt-bindings/soc/qcom,apr.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
                        compatible = "qcom,msm8916-bimc";
                        reg = <0x00400000 0x62000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
                };
 
                tsens: thermal-sensor@4a9000 {
                        compatible = "qcom,msm8916-pcnoc";
                        reg = <0x00500000 0x11000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
-                                <&rpmcc RPM_SMD_PCNOC_A_CLK>;
                };
 
                snoc: interconnect@580000 {
                        compatible = "qcom,msm8916-snoc";
                        reg = <0x00580000 0x14000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
                };
 
                stm: stm@802000 {
 
                                label = "hexagon";
 
+                               apr: apr {
+                                       compatible = "qcom,apr-v2";
+                                       qcom,smd-channels = "apr_audio_svc";
+                                       qcom,domain = <APR_DOMAIN_ADSP>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       status = "disabled";
+
+                                       q6core: service@3 {
+                                               compatible = "qcom,q6core";
+                                               reg = <APR_SVC_ADSP_CORE>;
+                                       };
+
+                                       q6afe: service@4 {
+                                               compatible = "qcom,q6afe";
+                                               reg = <APR_SVC_AFE>;
+
+                                               q6afedai: dais {
+                                                       compatible = "qcom,q6afe-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                               };
+                                       };
+
+                                       q6asm: service@7 {
+                                               compatible = "qcom,q6asm";
+                                               reg = <APR_SVC_ASM>;
+
+                                               q6asmdai: dais {
+                                                       compatible = "qcom,q6asm-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                               };
+                                       };
+
+                                       q6adm: service@8 {
+                                               compatible = "qcom,q6adm";
+                                               reg = <APR_SVC_ADM>;
+
+                                               q6routing: routing {
+                                                       compatible = "qcom,q6adm-routing";
+                                                       #sound-dai-cells = <0>;
+                                               };
+                                       };
+                               };
+
                                fastrpc {
                                        compatible = "qcom,fastrpc";
                                        qcom,smd-channels = "fastrpcsmd-apps-dsp";
                        clock-names = "bam_clk";
                        #dma-cells = <1>;
                        qcom,ee = <0>;
+                       qcom,controlled-remotely;
                };
 
                blsp_uart1: serial@78af000 {
diff --git a/src/arm64/qcom/msm8939-huawei-kiwi.dts b/src/arm64/qcom/msm8939-huawei-kiwi.dts
new file mode 100644 (file)
index 0000000..3cec518
--- /dev/null
@@ -0,0 +1,242 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8939-pm8916.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Huawei Honor 5X / GR5 (2016)";
+       compatible = "huawei,kiwi", "qcom,msm8939";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       reserved-memory {
+               qseecom_mem: qseecom@84a00000 {
+                       reg = <0x0 0x84a00000 0x0 0x1600000>;
+                       no-map;
+               };
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_hall_sensor_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Hall Effect Sensor";
+
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               button-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c2 {
+       status = "okay";
+
+       accelerometer@1e {
+               compatible = "kionix,kx023-1025";
+               reg = <0x1e>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+               mount-matrix = "-1", "0", "0",
+                              "0", "1", "0",
+                              "0", "0", "1";
+       };
+
+       proximity@39 {
+               compatible = "avago,apds9930";
+               reg = <0x39>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <113 IRQ_TYPE_EDGE_FALLING>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               led-max-microamp = <25000>;
+               amstaos,proximity-diodes = <0>;
+
+               pinctrl-0 = <&prox_irq_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen@1c {
+               compatible = "cypress,tt21000";
+
+               reg = <0x1c>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
+
+               /*
+                * NOTE: vdd is not directly supplied by pm8916_l16, it seems to be a
+                * fixed regulator that is automatically enabled by pm8916_l16.
+                */
+               vdd-supply = <&pm8916_l16>;
+               vddio-supply = <&pm8916_l16>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&pm8916_l8 {
+       regulator-min-microvolt = <2950000>;
+       regulator-max-microvolt = <2950000>;
+};
+
+&pm8916_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pm8916_rpm_regulators {
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
+&pm8916_vib {
+       status = "okay";
+};
+
+&sdhc_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
+
+       status = "okay";
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+&tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+               pins = "gpio69";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio107";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       prox_irq_default: prox-irq-default-state {
+               pins = "gpio113";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touchscreen_default: touchscreen-default-state {
+               pins = "gpio12", "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb_id_default: usb-id-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
index 6802714fda3f57a2841d3f69d05a45e64ad9e025..e3404c4455cf8d08d559cd4554c7898d10c68024 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 
 / {
 
 };
 
+&blsp_i2c2 {
+       status = "okay";
+
+       led-controller@30 {
+               compatible = "kinetic,ktd2026";
+               reg = <0x30>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vin-supply = <&pm8916_l17>;
+               vio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&status_led_default>;
+               pinctrl-names = "default";
+
+               multi-led {
+                       color = <LED_COLOR_ID_RGB>;
+                       function = LED_FUNCTION_STATUS;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+               };
+       };
+};
+
 &blsp_i2c3 {
        status = "okay";
 
        light-sensor@23 {
                compatible = "liteon,ltr559";
                reg = <0x23>;
+               proximity-near-level = <75>;
 
                vdd-supply = <&pm8916_l17>;
                vddio-supply = <&pm8916_l5>;
        status = "okay";
 };
 
+&pm8916_gpios {
+       status_led_default: status-led-default-state {
+               pins = "gpio3";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <PM8916_GPIO_VPH>;
+               bias-disable;
+               output-high;
+       };
+};
+
 &pm8916_mpps {
        pwm_out: mpp4-state {
                pins = "mpp4";
        compatible = "qcom,wcn3620";
 };
 
+&wcnss_mem {
+       status = "okay";
+};
+
 &tlmm {
        button_backlight_default: button-backlight-default-state {
                pins = "gpio17";
index fccd8fec8b8f7cd43574ad52ea4dec0fd4a250cb..aa6c39482a2f13d2c4e3da075937a2124096e33f 100644 (file)
@@ -3,10 +3,12 @@
 /dts-v1/;
 
 #include "msm8939-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
 
 / {
        model = "Samsung Galaxy A7 (2015)";
        };
 };
 
+&blsp_i2c2 {
+       status = "okay";
+
+       speaker_codec: audio-codec@34 {
+               compatible = "nxp,tfa9895";
+               reg = <0x34>;
+               vddd-supply = <&pm8916_l5>;
+               sound-name-prefix = "Speaker";
+               #sound-dai-cells = <0>;
+       };
+};
+
 &blsp_i2c5 {
        status = "okay";
 
        status = "okay";
 };
 
+/*
+ * For some reason the speaker amplifier is connected to the second SD line
+ * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
+ * device tree, otherwise audio will seemingly play fine on the wrong SD line
+ * but the speaker stays silent.
+ *
+ * When routing audio via QDSP6 (the default) the &lpass node is reserved and
+ * the definitions from &q6afedai are used. When the modem is disabled audio can
+ * be alternatively routed directly to the LPASS hardware with reduced latency.
+ * The definitions for &lpass are here for completeness to simplify changing the
+ * setup with minor changes to the DT (either manually or with DT overlays).
+ */
+&lpass {
+       dai-link@3 {
+               reg = <MI2S_QUATERNARY>;
+               qcom,playback-sd-lines = <1>;
+       };
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5800000>;
+};
+
 &pm8916_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
        };
 };
 
+&q6afedai {
+       dai@22 {
+               reg = <QUATERNARY_MI2S_RX>;
+               qcom,sd-lines = <1>;
+       };
+};
+
 &sdhc_1 {
        status = "okay";
 };
        status = "okay";
 };
 
+&sound {
+       model = "samsung-a2015";
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       sound_link_backend2: backend2-dai-link {
+               link-name = "Quaternary MI2S";
+
+               cpu {
+                       sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+               codec {
+                       sound-dai = <&speaker_codec>;
+               };
+       };
+};
+
 &usb {
        extcon = <&muic>, <&muic>;
        status = "okay";
index 324b5d26db4005aabf8fce357678d10ff60e4958..82d85ff61045d31c13b6b5874acd315399a8886e 100644 (file)
@@ -10,6 +10,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,gcc-msm8939.h>
+#include <dt-bindings/soc/qcom,apr.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
                bimc: interconnect@400000 {
                        compatible = "qcom,msm8939-bimc";
                        reg = <0x00400000 0x62000>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
                        #interconnect-cells = <1>;
                };
 
                pcnoc: interconnect@500000 {
                        compatible = "qcom,msm8939-pcnoc";
                        reg = <0x00500000 0x11000>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
-                                <&rpmcc RPM_SMD_PCNOC_A_CLK>;
                        #interconnect-cells = <1>;
                };
 
                snoc: interconnect@580000 {
                        compatible = "qcom,msm8939-snoc";
                        reg = <0x00580000 0x14080>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
                        #interconnect-cells = <1>;
 
                        snoc_mm: interconnect-snoc {
                                compatible = "qcom,msm8939-snoc-mm";
-                               clock-names = "bus", "bus_a";
-                               clocks = <&rpmcc RPM_SMD_SYSMMNOC_CLK>,
-                                        <&rpmcc RPM_SMD_SYSMMNOC_A_CLK>;
                                #interconnect-cells = <1>;
                        };
                };
                        #interrupt-cells = <4>;
                };
 
+               bam_dmux_dma: dma-controller@4044000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x04044000 0x19000>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+
+                       num-channels = <6>;
+                       qcom,num-ees = <1>;
+                       qcom,powered-remotely;
+
+                       status = "disabled";
+               };
+
                mpss: remoteproc@4080000 {
                        compatible = "qcom,msm8916-mss-pil";
                        reg = <0x04080000 0x100>, <0x04020000 0x040>;
                        qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
                        status = "disabled";
 
+                       bam_dmux: bam-dmux {
+                               compatible = "qcom,bam-dmux";
+
+                               interrupt-parent = <&hexagon_smsm>;
+                               interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
+                               interrupt-names = "pc", "pc-ack";
+
+                               qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
+                               qcom,smem-state-names = "pc", "pc-ack";
+
+                               dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
+                               dma-names = "tx", "rx";
+
+                               status = "disabled";
+                       };
+
                        mba {
                                memory-region = <&mba_mem>;
                        };
                                qcom,remote-pid = <1>;
 
                                label = "hexagon";
+
+                               apr: apr {
+                                       compatible = "qcom,apr-v2";
+                                       qcom,smd-channels = "apr_audio_svc";
+                                       qcom,domain = <APR_DOMAIN_ADSP>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       status = "disabled";
+
+                                       q6core: service@3 {
+                                               compatible = "qcom,q6core";
+                                               reg = <APR_SVC_ADSP_CORE>;
+                                       };
+
+                                       q6afe: service@4 {
+                                               compatible = "qcom,q6afe";
+                                               reg = <APR_SVC_AFE>;
+
+                                               q6afedai: dais {
+                                                       compatible = "qcom,q6afe-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                               };
+                                       };
+
+                                       q6asm: service@7 {
+                                               compatible = "qcom,q6asm";
+                                               reg = <APR_SVC_ASM>;
+
+                                               q6asmdai: dais {
+                                                       compatible = "qcom,q6asm-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                               };
+                                       };
+
+                                       q6adm: service@8 {
+                                               compatible = "qcom,q6adm";
+                                               reg = <APR_SVC_ADM>;
+
+                                               q6routing: routing {
+                                                       compatible = "qcom,q6adm-routing";
+                                                       #sound-dai-cells = <0>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                        clock-names = "bam_clk";
                        #dma-cells = <1>;
                        qcom,ee = <0>;
+                       qcom,controlled-remotely;
                };
 
                blsp_uart1: serial@78af000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
+                       /* Necessary because firmware does not configure this correctly */
+                       clock-frequency = <19200000>;
 
                        frame@b121000 {
                                reg = <0x0b121000 0x1000>,
index ed95d09cedb1e32463f056842c5d7916cf5880d1..6b9245cd8b0c3f6884dee56357d2a93e2d15beda 100644 (file)
                reg = <0x45>;
 
                vcc-supply = <&pm8953_l10>;
+               vio-supply = <&pm8953_l5>;
 
                #address-cells = <1>;
                #size-cells = <0>;
index 61ff629c9bf3452c7e47637c4e822b0afcb3e543..9ac4f507e321a6c0f48a2708ff3a7ec21844f6f1 100644 (file)
                reg = <0x45>;
 
                vcc-supply = <&pm8953_l10>;
+               vio-supply = <&pm8953_l5>;
 
                #address-cells = <1>;
                #size-cells = <0>;
index 1a1d3f92a5116896961658d963104870af337926..b0588f30f8f1a7193762b7622fdf73c41ff90167 100644 (file)
                reg = <0x45>;
 
                vcc-supply = <&pm8953_l10>;
+               vio-supply = <&pm8953_l5>;
 
                #address-cells = <1>;
                #size-cells = <0>;
index e7de7632669a2949d14d856714b750b0e8e99b98..ad2f8cf9c966c568cdc517b1ccd7939ded23e57c 100644 (file)
                };
        };
 
-       memory {
+       memory@10000000 {
                device_type = "memory";
                /* We expect the bootloader to fill in the reg */
-               reg = <0 0 0 0>;
+               reg = <0 0x10000000 0 0>;
        };
 
        pmu {
                                bias-disable;
                        };
 
+                       spi_3_default: spi-3-default-state {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_spi3";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       spi_3_sleep: spi-3-sleep-state {
+                               pins = "gpio10", "gpio11";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       spi_5_default: spi-5-default-state {
+                               pins = "gpio18", "gpio19";
+                               function = "blsp_spi5";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       spi_5_sleep: spi-5-sleep-state {
+                               pins = "gpio18", "gpio19";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       spi_6_default: spi-6-default-state {
+                               pins = "gpio22", "gpio23";
+                               function = "blsp_spi6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       spi_6_sleep: spi-6-sleep-state {
+                               pins = "gpio22", "gpio23";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
                        wcnss_pin_a: wcnss-active-state {
 
                                wcss-wlan2-pins {
 
                apps_iommu: iommu@1e20000 {
                        compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v1";
-                       ranges  = <0 0x01e20000 0x20000>;
+                       ranges = <0 0x01e20000 0x20000>;
 
                        clocks = <&gcc GCC_SMMU_CFG_CLK>,
                                 <&gcc GCC_APSS_TCU_ASYNC_CLK>;
                        status = "disabled";
                };
 
+               spi_3: spi@78b7000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x078b7000 0x600>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
+                       dma-names = "tx", "rx";
+
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi_3_default>;
+                       pinctrl-1 = <&spi_3_sleep>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+               };
+
                i2c_4: i2c@78b8000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b8000 0x600>;
                        status = "disabled";
                };
 
+               spi_5: spi@7af5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x07af5000 0x600>;
+                       interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
+                               <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 4>, <&blsp2_dma 5>;
+                       dma-names = "tx", "rx";
+
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi_5_default>;
+                       pinctrl-1 = <&spi_5_sleep>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+               };
+
                i2c_6: i2c@7af6000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x07af6000 0x600>;
                        status = "disabled";
                };
 
+               spi_6: spi@7af6000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x07af6000 0x600>;
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
+                       dma-names = "tx", "rx";
+
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&spi_6_default>;
+                       pinctrl-1 = <&spi_6_sleep>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+               };
+
                i2c_7: i2c@7af7000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x07af7000 0x600>;
                                apr {
                                        compatible = "qcom,apr-v2";
                                        qcom,smd-channels = "apr_audio_svc";
-                                       qcom,apr-domain = <APR_DOMAIN_ADSP>;
+                                       qcom,domain = <APR_DOMAIN_ADSP>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
index 6ba9da9e6a8b993f912a813bf44308f235cc0dcf..ee6f87c828aefab76ff58c1ba1f59ae023068381 100644 (file)
                reg = <0x0 0x80000000 0x0 0x0>;
        };
 
+       etm {
+               compatible = "qcom,coresight-remote-etm";
+
+               out-ports {
+                       port {
+                               modem_etm_out_funnel_in2: endpoint {
+                                       remote-endpoint =
+                                         <&funnel_in2_in_modem_etm>;
+                               };
+                       };
+               };
+       };
+
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
                                 <&pciephy_0>,
                                 <&pciephy_1>,
                                 <&pciephy_2>,
-                                <&ssusb_phy_0>,
-                                <&ufsphy_lane 0>,
-                                <&ufsphy_lane 1>,
-                                <&ufsphy_lane 2>;
+                                <&usb3phy>,
+                                <&ufsphy 0>,
+                                <&ufsphy 1>,
+                                <&ufsphy 2>;
                        clock-names = "cxo",
                                      "cxo2",
                                      "sleep_clk",
                        compatible = "qcom,msm8996-bimc";
                        reg = <0x00408000 0x5a000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
                };
 
                tsens0: thermal-sensor@4a9000 {
                        compatible = "qcom,msm8996-cnoc";
                        reg = <0x00500000 0x1000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
-                                <&rpmcc RPM_SMD_CNOC_A_CLK>;
                };
 
                snoc: interconnect@524000 {
                        compatible = "qcom,msm8996-snoc";
                        reg = <0x00524000 0x1c000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
                };
 
                a0noc: interconnect@543000 {
                        compatible = "qcom,msm8996-a1noc";
                        reg = <0x00562000 0x5000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_AGGR1_NOC_CLK>,
-                                <&rpmcc RPM_SMD_AGGR1_NOC_A_CLK>;
                };
 
                a2noc: interconnect@583000 {
                        compatible = "qcom,msm8996-a2noc";
                        reg = <0x00583000 0x7000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a", "aggre2_ufs_axi", "ufs_axi";
-                       clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
-                                <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
-                                <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
+                       clock-names = "aggre2_ufs_axi", "ufs_axi";
+                       clocks = <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
                                 <&gcc GCC_UFS_AXI_CLK>;
                };
 
                        compatible = "qcom,msm8996-mnoc";
                        reg = <0x005a4000 0x1c000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a", "iface";
-                       clocks = <&rpmcc RPM_SMD_MMAXI_CLK>,
-                                <&rpmcc RPM_SMD_MMAXI_A_CLK>,
-                                <&mmcc AHB_CLK_SRC>;
+                       clock-names = "iface";
+                       clocks = <&mmcc AHB_CLK_SRC>;
                };
 
                pnoc: interconnect@5c0000 {
                        compatible = "qcom,msm8996-pnoc";
                        reg = <0x005c0000 0x3000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
-                                <&rpmcc RPM_SMD_PCNOC_A_CLK>;
                };
 
                tcsr_mutex: hwlock@740000 {
                        reg = <0x00624000 0x2500>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
 
-                       phys = <&ufsphy_lane>;
+                       phys = <&ufsphy>;
                        phy-names = "ufsphy";
 
                        power-domains = <&gcc UFS_GDSC>;
 
                ufsphy: phy@627000 {
                        compatible = "qcom,msm8996-qmp-ufs-phy";
-                       reg = <0x00627000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x00627000 0x1000>;
 
                        clocks = <&gcc GCC_UFS_CLKREF_CLK>;
                        clock-names = "ref";
 
                        resets = <&ufshc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufsphy_lane: phy@627400 {
-                               reg = <0x627400 0x12c>,
-                                     <0x627600 0x200>,
-                                     <0x627c00 0x1b4>;
-                               #clock-cells = <1>;
-                               #phy-cells = <0>;
-                       };
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                camss: camss@a34000 {
                                          "handover",
                                          "stop-ack";
 
-                       clocks = <&xo_board>,
-                                <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
-                       clock-names = "xo", "aggre2";
+                       clocks = <&xo_board>;
+                       clock-names = "xo";
 
                        memory-region = <&slpi_mem>;
 
                                 <&gcc GCC_MSS_GPLL0_DIV_CLK>,
                                 <&gcc GCC_MSS_SNOC_AXI_CLK>,
                                 <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
-                                <&rpmcc RPM_SMD_PCNOC_CLK>,
                                 <&rpmcc RPM_SMD_QDSS_CLK>;
-                       clock-names = "iface", "bus", "mem", "xo", "gpll0_mss",
-                                     "snoc_axi", "mnoc_axi", "pnoc", "qdss";
+                       clock-names = "iface",
+                                     "bus",
+                                     "mem",
+                                     "xo",
+                                     "gpll0_mss",
+                                     "snoc_axi",
+                                     "mnoc_axi",
+                                     "qdss";
 
                        resets = <&gcc GCC_MSS_RESTART>;
                        reset-names = "mss_restart";
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
 
+                       in-ports {
+                               port {
+                                       funnel_in2_in_modem_etm: endpoint {
+                                               remote-endpoint =
+                                                 <&modem_etm_out_funnel_in2>;
+                                       };
+                               };
+                       };
 
                        out-ports {
                                port {
                                compatible = "snps,dwc3";
                                reg = <0x06a00000 0xcc00>;
                                interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
-                               phys = <&hsusb_phy1>, <&ssusb_phy_0>;
+                               phys = <&hsusb_phy1>, <&usb3phy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                snps,hird-threshold = /bits/ 8 <0>;
                                snps,dis_u2_susphy_quirk;
 
                usb3phy: phy@7410000 {
                        compatible = "qcom,msm8996-qmp-usb3-phy";
-                       reg = <0x07410000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x07410000 0x1000>;
 
                        clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
-                               <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
-                               <&gcc GCC_USB3_CLKREF_CLK>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&gcc GCC_USB3_CLKREF_CLK>,
+                                <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
+                                <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
                        resets = <&gcc GCC_USB3_PHY_BCR>,
-                               <&gcc GCC_USB3PHY_PHY_BCR>;
-                       reset-names = "phy", "common";
-                       status = "disabled";
-
-                       ssusb_phy_0: phy@7410200 {
-                               reg = <0x07410200 0x200>,
-                                     <0x07410400 0x130>,
-                                     <0x07410600 0x1a8>;
-                               #phy-cells = <0>;
+                                <&gcc GCC_USB3PHY_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                               #clock-cells = <0>;
-                               clock-output-names = "usb3_phy_pipe_clk_src";
-                               clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                       };
+                       status = "disabled";
                };
 
                hsusb_phy1: phy@7411000 {
index b485bf925ce613e408ad21940e806fdf7ed4335f..2793cc22d381af990a80018b96e16da4400d0fd1 100644 (file)
                                <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-msm8998", "qcom,pcie-msm8996";
                        reg = <0x01c00000 0x2000>,
                              <0x1b000000 0xf1d>,
                        compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
                        reg = <0x01da4000 0x2500>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufsphy_lanes>;
+                       phys = <&ufsphy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        power-domains = <&gcc UFS_GDSC>;
 
                ufsphy: phy@1da7000 {
                        compatible = "qcom,msm8998-qmp-ufs-phy";
-                       reg = <0x01da7000 0x18c>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       status = "disabled";
-                       ranges;
+                       reg = <0x01da7000 0x1000>;
 
                        clock-names =
                                "ref",
                        reset-names = "ufsphy";
                        resets = <&ufshc 0>;
 
-                       ufsphy_lanes: phy@1da7400 {
-                               reg = <0x01da7400 0x128>,
-                                     <0x01da7600 0x1fc>,
-                                     <0x01da7c00 0x1dc>,
-                                     <0x01da7800 0x128>,
-                                     <0x01da7a00 0x1fc>;
-                               #phy-cells = <0>;
-                       };
+                       #phy-cells = <0>;
+                       status = "disabled";
                };
 
                tcsr_mutex: hwlock@1f40000 {
 
                        px-supply = <&vreg_lvs2a_1p8>;
 
-                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
-                                <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
-                       clock-names = "xo", "aggre2";
+                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                       clock-names = "xo";
 
                        memory-region = <&slpi_mem>;
 
 
                        cpu = <&CPU4>;
 
-                       port {
-                               etm4_out: endpoint {
-                                       remote-endpoint = <&apss_funnel_in4>;
+                       out-ports {
+                               port {
+                                       etm4_out: endpoint {
+                                               remote-endpoint = <&apss_funnel_in4>;
+                                       };
                                };
                        };
                };
 
                        cpu = <&CPU5>;
 
-                       port {
-                               etm5_out: endpoint {
-                                       remote-endpoint = <&apss_funnel_in5>;
+                       out-ports {
+                               port {
+                                       etm5_out: endpoint {
+                                               remote-endpoint = <&apss_funnel_in5>;
+                                       };
                                };
                        };
                };
 
                        cpu = <&CPU6>;
 
-                       port {
-                               etm6_out: endpoint {
-                                       remote-endpoint = <&apss_funnel_in6>;
+                       out-ports {
+                               port {
+                                       etm6_out: endpoint {
+                                               remote-endpoint = <&apss_funnel_in6>;
+                                       };
                                };
                        };
                };
 
                        cpu = <&CPU7>;
 
-                       port {
-                               etm7_out: endpoint {
-                                       remote-endpoint = <&apss_funnel_in7>;
+                       out-ports {
+                               port {
+                                       etm7_out: endpoint {
+                                               remote-endpoint = <&apss_funnel_in7>;
+                                       };
                                };
                        };
                };
                                interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&qusb2phy>, <&usb1_ssphy>;
+                               phys = <&qusb2phy>, <&usb3phy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                snps,has-lpm-erratum;
                                snps,hird-threshold = /bits/ 8 <0x10>;
 
                usb3phy: phy@c010000 {
                        compatible = "qcom,msm8998-qmp-usb3-phy";
-                       reg = <0x0c010000 0x18c>;
-                       status = "disabled";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
+                       reg = <0x0c010000 0x1000>;
 
                        clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_CLKREF_CLK>,
                                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
-                                <&gcc GCC_USB3_CLKREF_CLK>;
-                       clock-names = "aux", "cfg_ahb", "ref";
+                                <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+                       clock-output-names = "usb3_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
                        resets = <&gcc GCC_USB3_PHY_BCR>,
                                 <&gcc GCC_USB3PHY_PHY_BCR>;
-                       reset-names = "phy", "common";
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb1_ssphy: phy@c010200 {
-                               reg = <0xc010200 0x128>,
-                                     <0xc010400 0x200>,
-                                     <0xc010c00 0x20c>,
-                                     <0xc010600 0x128>,
-                                     <0xc010800 0x200>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_phy_pipe_clk_src";
-                       };
+                       status = "disabled";
                };
 
                qusb2phy: phy@c012000 {
index df0afe82f250e5b61f1cc3e29acca5dba206021f..3bf7cf5d17008253f466c2ba87abc3b49751ce4a 100644 (file)
                        status = "disabled";
                };
 
-               pm7250b_gpios: pinctrl@c000 {
+               pm7250b_gpios: gpio@c000 {
                        compatible = "qcom,pm7250b-gpio", "qcom,spmi-gpio";
                        reg = <0xc000>;
                        gpio-controller;
index db3d5c17a77dfbe363e3b0ccfff0c4b92863f109..797a18c249a4a4b533c40e6b43736d4a7ded5bda 100644 (file)
@@ -64,9 +64,6 @@
 
                pm8550_pwm: pwm {
                        compatible = "qcom,pm8550-pwm", "qcom,pm8350c-pwm";
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        #pwm-cells = <2>;
 
                        status = "disabled";
index c47646a467bed3487f775c474aeda26b8d035d1e..4dc1f03ab2c7461e626bf9c44bb80490ca09b5ba 100644 (file)
 
 
 &spmi_bus {
-       pm8550ve: pmic@5 {
+       pm8550ve: pmic@PMK8550VE_SID {
                compatible = "qcom,pm8550", "qcom,spmi-pmic";
-               reg = <0x5 SPMI_USID>;
+               reg = <PMK8550VE_SID SPMI_USID>;
                #address-cells = <1>;
                #size-cells = <0>;
 
                pm8550ve_temp_alarm: temp-alarm@a00 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0xa00>;
-                       interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       interrupts = <PMK8550VE_SID 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
                        #thermal-sensor-cells = <0>;
                };
 
index f4de86787743b09a319fb37813fecad598064289..4b2e8fb47d2da13cd1a80bae044f38cc410a2feb 100644 (file)
                        };
                };
 
+               pm8916_charger: charger@1000 {
+                       compatible = "qcom,pm8916-lbc";
+                       reg = <0x1000>, <0x1200>, <0x1300>, <0x1600>;
+                       reg-names = "chgr", "bat_if", "usb", "misc";
+
+                       interrupts = <0x0 0x10 0 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x10 6 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x13 0 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x13 4 IRQ_TYPE_EDGE_BOTH>;
+                       interrupt-names = "vbat_det",
+                                         "fast_chg",
+                                         "chg_fail",
+                                         "chg_done",
+                                         "bat_pres",
+                                         "temp_ok",
+                                         "coarse_det",
+                                         "usb_vbus",
+                                         "chg_gone",
+                                         "overtemp";
+
+                       status = "disabled";
+               };
+
                pm8916_usbin: usb-detect@1300 {
                        compatible = "qcom,pm8941-misc";
                        reg = <0x1300>;
                        };
                };
 
+               pm8916_bms: battery@4000 {
+                       compatible = "qcom,pm8916-bms-vm";
+                       reg = <0x4000>;
+                       interrupts = <0x0 0x40 0 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x40 1 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x40 2 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x40 3 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x40 4 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x40 5 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "cv_leave",
+                                         "cv_enter",
+                                         "ocv_good",
+                                         "ocv_thr",
+                                         "fifo",
+                                         "state_chg";
+
+                       status = "disabled";
+               };
+
                rtc@6000 {
                        compatible = "qcom,pm8941-rtc";
                        reg = <0x6000>, <0x6100>;
index 1eb74017062d638e8804fc4e7696295126e05e9a..f0ed15458dd7bbbc0f47570559be78b6b348b7c4 100644 (file)
@@ -22,7 +22,7 @@
                mode-bootloader = <0x02>;
        };
 };
-       
+
 &spmi_bus {
        pmk8350: pmic@PMK8350_SID {
                compatible = "qcom,pmk8350", "qcom,spmi-pmic";
index d46e591e72b5c9bb77af2cfbc1b14a43e1664078..0911fb08ed6327f75d6e2d627324bffef24dec22 100644 (file)
@@ -5,12 +5,15 @@
  * Based on sm6115.dtsi and previous efforts by Shawn Guo & Loic Poulain.
  */
 
+#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
 #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
 #include <dt-bindings/clock/qcom,rpmcc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interconnect/qcom,qcm2290.h>
+#include <dt-bindings/interconnect/qcom,rpm-icc.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 
 / {
                        clocks = <&rpmcc RPM_SMD_CE1_CLK>;
                        clock-names = "core";
                        #reset-cells = <1>;
+                       interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
                };
        };
 
 
                CLUSTER_PD: power-domain-cpu-cluster {
                        #power-domain-cells = <0>;
+                       power-domains = <&mpm>;
                        domain-idle-states = <&CLUSTER_SLEEP>;
                };
        };
                                };
                        };
                };
+
+               mpm: interrupt-controller {
+                       compatible = "qcom,mpm";
+                       qcom,rpm-msg-ram = <&apss_mpm>;
+                       interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+                       mboxes = <&apcs_glb 1>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       #power-domain-cells = <0>;
+                       interrupt-parent = <&intc>;
+                       qcom,mpm-pin-count = <96>;
+                       qcom,mpm-pin-map = <2 275>,  /* TSENS0 uplow */
+                                          <5 296>,  /* Soundwire master_irq */
+                                          <12 422>, /* DWC3 ss_phy_irq */
+                                          <24 79>,  /* Soundwire wake_irq */
+                                          <86 183>, /* MPM wake, SPMI */
+                                          <90 260>; /* QUSB2_PHY DP+DM */
+               };
        };
 
        reserved_memory: reserved-memory {
                        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        gpio-ranges = <&tlmm 0 0 127>;
+                       wakeup-parent = <&mpm>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        status = "disabled";
                };
 
+               system_noc: interconnect@1880000 {
+                       compatible = "qcom,qcm2290-snoc";
+                       reg = <0x0 0x01880000 0x0 0x60200>;
+                       #interconnect-cells = <2>;
+
+                       qup_virt: interconnect-qup {
+                               compatible = "qcom,qcm2290-qup-virt";
+                               #interconnect-cells = <2>;
+                       };
+
+                       mmnrt_virt: interconnect-mmnrt {
+                               compatible = "qcom,qcm2290-mmnrt-virt";
+                               #interconnect-cells = <2>;
+                       };
+
+                       mmrt_virt: interconnect-mmrt {
+                               compatible = "qcom,qcm2290-mmrt-virt";
+                               #interconnect-cells = <2>;
+                       };
+               };
+
+               config_noc: interconnect@1900000 {
+                       compatible = "qcom,qcm2290-cnoc";
+                       reg = <0x0 0x01900000 0x0 0x8200>;
+                       #interconnect-cells = <2>;
+               };
+
                qfprom@1b44000 {
                        compatible = "qcom,qcm2290-qfprom", "qcom,qfprom";
                        reg = <0x0 0x01b44000 0x0 0x3000>;
                        };
                };
 
+               pmu@1b8e300 {
+                       compatible = "qcom,qcm2290-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x01b8e300 0x0 0x600>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+                       interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
+                                        &bimc SLAVE_EBI1 RPM_ACTIVE_TAG>;
+
+                       cpu_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <(200 * 4 * 1000)>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <(300 * 4 * 1000)>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <(451 * 4 * 1000)>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <(547 * 4 * 1000)>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <(681 * 4 * 1000)>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <(768 * 4 * 1000)>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <(1017 * 4 * 1000)>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <(1353 * 4 * 1000)>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <(1555 * 4 * 1000)>;
+                               };
+
+                               opp-9 {
+                                       opp-peak-kBps = <(1804 * 4 * 1000)>;
+                               };
+                       };
+               };
+
                spmi_bus: spmi@1c40000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0 0x01c40000 0x0 0x1100>,
                                    "obsrvr",
                                    "intr",
                                    "cnfg";
-                       interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "periph_irq";
                        qcom,ee = <0>;
                        qcom,channel = <0>;
                        reg = <0x0 0x04411000 0x0 0x1ff>,
                              <0x0 0x04410000 0x0 0x8>;
                        #qcom,sensors = <10>;
-                       interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&mpm 2 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                };
                        clock-names = "core";
                };
 
+               bimc: interconnect@4480000 {
+                       compatible = "qcom,qcm2290-bimc";
+                       reg = <0x0 0x04480000 0x0 0x80000>;
+                       #interconnect-cells = <2>;
+               };
+
                rpm_msg_ram: sram@45f0000 {
-                       compatible = "qcom,rpm-msg-ram";
+                       compatible = "qcom,rpm-msg-ram", "mmio-sram";
                        reg = <0x0 0x045f0000 0x0 0x7000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x0 0x045f0000 0x7000>;
+
+                       apss_mpm: sram@1b8 {
+                               reg = <0x1b8 0x48>;
+                       };
                };
 
                sram@4690000 {
                        resets = <&gcc GCC_SDCC1_BCR>;
 
                        power-domains = <&rpmpd QCM2290_VDDCX>;
+                       operating-points-v2 = <&sdhc1_opp_table>;
                        iommus = <&apps_smmu 0xc0 0x0>;
+                       interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
 
                        qcom,dll-config = <0x000f642c>;
                        qcom,ddr-config = <0x80040868>;
                        bus-width = <8>;
 
                        status = "disabled";
+
+                       sdhc1_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <250000 133320>;
+                                       opp-avg-kBps = <102400 65000>;
+                               };
+
+                               opp-192000000 {
+                                       opp-hz = /bits/ 64 <192000000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <204800 200000>;
+                               };
+
+                               opp-384000000 {
+                                       opp-hz = /bits/ 64 <384000000>;
+                                       required-opps = <&rpmpd_opp_svs_plus>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <204800 200000>;
+                               };
+                       };
                };
 
                sdhc_2: mmc@4784000 {
                        power-domains = <&rpmpd QCM2290_VDDCX>;
                        operating-points-v2 = <&sdhc2_opp_table>;
                        iommus = <&apps_smmu 0xa0 0x0>;
+                       interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
 
                        qcom,dll-config = <0x0007642c>;
                        qcom,ddr-config = <0x80040868>;
                                opp-100000000 {
                                        opp-hz = /bits/ 64 <100000000>;
                                        required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <250000 133320>;
+                                       opp-avg-kBps = <261438 150000>;
                                };
 
                                opp-202000000 {
                                        opp-hz = /bits/ 64 <202000000>;
                                        required-opps = <&rpmpd_opp_svs_plus>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <261438 300000>;
                                };
                        };
                };
                                dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 0 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 0 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                clock-names = "se";
                                pinctrl-0 = <&qup_uart0_default>;
                                pinctrl-names = "default";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 1 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 1 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 2 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 2 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 3 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 3 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 4 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 4 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                clock-names = "se";
                                pinctrl-0 = <&qup_uart4_default>;
                                pinctrl-names = "default";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 5 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 5 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                                &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                usb: usb@4ef8800 {
                        compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
                        reg = <0x0 0x04ef8800 0x0 0x400>;
-                       interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "hs_phy_irq", "ss_phy_irq";
+                       interrupts-extended = <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&mpm 12 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq",
+                                         "ss_phy_irq";
 
                        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
                                 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
 
                        resets = <&gcc GCC_USB30_PRIM_BCR>;
                        power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
+                       /* TODO: USB<->IPA path */
+                       interconnects = <&system_noc MASTER_USB3_0 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>;
+                       interconnect-names = "usb-ddr",
+                                            "apps-usb";
                        wakeup-source;
 
                        #address-cells = <2>;
                        };
                };
 
+               mdss: display-subsystem@5e00000 {
+                       compatible = "qcom,qcm2290-mdss";
+                       reg = <0x0 0x05e00000 0x0 0x1000>;
+                       reg-names = "mdss";
+                       interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       clocks = <&gcc GCC_DISP_AHB_CLK>,
+                                <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "core";
+
+                       resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       iommus = <&apps_smmu 0x420 0x2>,
+                                <&apps_smmu 0x421 0x0>;
+                       interconnects = <&mmrt_virt MASTER_MDP0 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>;
+                       interconnect-names = "mdp0-mem",
+                                            "cpu-cfg";
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdp: display-controller@5e01000 {
+                               compatible = "qcom,qcm2290-dpu";
+                               reg = <0x0 0x05e01000 0x0 0x8f000>,
+                                     <0x0 0x05eb0000 0x0 0x2008>;
+                               reg-names = "mdp",
+                                           "vbif";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0>;
+
+                               clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "bus",
+                                             "iface",
+                                             "core",
+                                             "lut",
+                                             "vsync";
+
+                               operating-points-v2 = <&mdp_opp_table>;
+                               power-domains = <&rpmpd QCM2290_VDDCX>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dpu_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-19200000 {
+                                               opp-hz = /bits/ 64 <19200000>;
+                                               required-opps = <&rpmpd_opp_min_svs>;
+                                       };
+
+                                       opp-192000000 {
+                                               opp-hz = /bits/ 64 <192000000>;
+                                               required-opps = <&rpmpd_opp_low_svs>;
+                                       };
+
+                                       opp-256000000 {
+                                               opp-hz = /bits/ 64 <256000000>;
+                                               required-opps = <&rpmpd_opp_svs>;
+                                       };
+
+                                       opp-307200000 {
+                                               opp-hz = /bits/ 64 <307200000>;
+                                               required-opps = <&rpmpd_opp_svs_plus>;
+                                       };
+
+                                       opp-384000000 {
+                                               opp-hz = /bits/ 64 <384000000>;
+                                               required-opps = <&rpmpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0: dsi@5e94000 {
+                               compatible = "qcom,qcm2290-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+                               reg = <0x0 0x05e94000 0x0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
+
+                               operating-points-v2 = <&dsi_opp_table>;
+                               power-domains = <&rpmpd QCM2290_VDDCX>;
+                               phys = <&mdss_dsi0_phy>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               dsi_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-19200000 {
+                                               opp-hz = /bits/ 64 <19200000>;
+                                               required-opps = <&rpmpd_opp_min_svs>;
+                                       };
+
+                                       opp-164000000 {
+                                               opp-hz = /bits/ 64 <164000000>;
+                                               required-opps = <&rpmpd_opp_low_svs>;
+                                       };
+
+                                       opp-187500000 {
+                                               opp-hz = /bits/ 64 <187500000>;
+                                               required-opps = <&rpmpd_opp_svs>;
+                                       };
+                               };
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0_phy: phy@5e94400 {
+                               compatible = "qcom,dsi-phy-14nm-2290";
+                               reg = <0x0 0x05e94400 0x0 0x100>,
+                                     <0x0 0x05e94500 0x0 0x300>,
+                                     <0x0 0x05e94800 0x0 0x188>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface",
+                                             "ref";
+
+                               power-domains = <&rpmpd QCM2290_VDDMX>;
+                               required-opps = <&rpmpd_opp_nom>;
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               dispcc: clock-controller@5f00000 {
+                       compatible = "qcom,qcm2290-dispcc";
+                       reg = <0x0 0x05f00000 0x0 0x20000>;
+                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                                <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
+                                <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+                                <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi0_phy 1>;
+                       clock-names = "bi_tcxo",
+                                     "bi_tcxo_ao",
+                                     "gcc_disp_gpll0_clk_src",
+                                     "gcc_disp_gpll0_div_clk_src",
+                                     "dsi0_phy_pll_out_byteclk",
+                                     "dsi0_phy_pll_out_dsiclk";
+                       #power-domain-cells = <1>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
                remoteproc_mpss: remoteproc@6080000 {
                        compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas";
                        reg = <0x0 0x06080000 0x0 0x100>;
index 2de0b8c26c3542594175870008525559af3d45cc..176898c9dbbd72672dce448f4b747aef022820e3 100644 (file)
@@ -9,6 +9,8 @@
 #define PM7250B_SID 8
 #define PM7250B_SID1 9
 
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
                        no-map;
                };
 
-               adsp_mem: adsp@86700000 {
-                       reg = <0x0 0x86700000 0x0 0x2800000>;
-                       no-map;
-               };
-
                cdsp_mem: cdsp@88f00000 {
                        reg = <0x0 0x88f00000 0x0 0x1e00000>;
                        no-map;
                };
 
-               mpss_mem: mpss@8b800000 {
-                       reg = <0x0 0x8b800000 0x0 0xf600000>;
-                       no-map;
-               };
-
-               wpss_mem: wpss@9ae00000 {
-                       reg = <0x0 0x9ae00000 0x0 0x1900000>;
-                       no-map;
-               };
-
                rmtfs_mem: memory@f8500000 {
                        compatible = "qcom,rmtfs-mem";
                        reg = <0x0 0xf8500000 0x0 0x600000>;
                enable-active-high;
                vin-supply = <&vreg_bob>;
        };
+
+       thermal-zones {
+               camera-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 2>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               chg-skin-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm7250b_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               conn-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm7250b_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               quiet-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rear-cam-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 4>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               sdm-skin-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 3>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               xo-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
 };
 
 &apps_rsc {
                };
 
                vreg_l7b: ldo7 {
-                       regulator-min-microvolt = <2400000>;
-                       regulator-max-microvolt = <3544000>;
+                       /* Constrained for UFS VCC, at least until UFS driver scales voltage */
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
        status = "okay";
 };
 
+&pm7250b_adc {
+       channel@4d {
+               reg = <ADC5_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "charger_skin_therm";
+       };
+
+       channel@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "conn_therm";
+       };
+};
+
+&pm7250b_adc_tm {
+       status = "okay";
+
+       charger-skin-therm@0 {
+               reg = <0>;
+               io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       conn-therm@1 {
+               reg = <1>;
+               io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
 &pm7325_gpios {
        volume_down_default: volume-down-default-state {
                pins = "gpio6";
        };
 };
 
+&pmk8350_adc_tm {
+       status = "okay";
+
+       xo-therm@0 {
+               reg = <0>;
+               io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       quiet-therm@1 {
+               reg = <1>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       cam-flash-therm@2 {
+               reg = <2>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       sdm-skin-therm@3 {
+               reg = <3>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       wide-rfc-therm@4 {
+               reg = <4>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
 &pmk8350_rtc {
        status = "okay";
 };
 
+&pmk8350_vadc {
+       status = "okay";
+
+       channel@44 {
+               reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pmk8350_xo_therm";
+       };
+
+       channel@144 {
+               reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_quiet_therm";
+       };
+
+       channel@145 {
+               reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_cam_flash_therm";
+       };
+
+       channel@146 {
+               reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_sdm_skin_therm";
+       };
+
+       channel@147 {
+               reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_wide_rfc_therm";
+       };
+};
+
 &pon_pwrkey {
        status = "okay";
 };
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcm6490/fairphone5/modem.mbn";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn";
+       status = "okay";
+};
+
 &sdc2_clk {
        drive-strength = <16>;
        bias-disable;
        };
 };
 
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7b>;
+       vcc-max-microamp = <800000>;
+       /*
+        * Technically l9b enables an eLDO (supplied by s1b) which then powers
+        * VCCQ2 of the UFS.
+        */
+       vccq-supply = <&vreg_l9b>;
+       vccq-max-microamp = <900000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l10c>;
+       vdda-pll-supply = <&vreg_l6b>;
+
+       status = "okay";
+};
+
 &usb_1 {
        status = "okay";
 };
 
        status = "okay";
 };
+
+&wifi {
+       qcom,ath11k-calibration-variant = "Fairphone_5";
+       status = "okay";
+};
diff --git a/src/arm64/qcom/qcm6490-idp.dts b/src/arm64/qcom/qcm6490-idp.dts
new file mode 100644 (file)
index 0000000..03e97e2
--- /dev/null
@@ -0,0 +1,468 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc7280.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &rmtfs_mem;
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &video_mem;
+/delete-node/ &wlan_ce_mem;
+/delete-node/ &wpss_mem;
+/delete-node/ &xbl_mem;
+
+/ {
+       model = "Qualcomm Technologies, Inc. QCM6490 IDP";
+       compatible = "qcom,qcm6490-idp", "qcom,qcm6490";
+       chassis-type = "embedded";
+
+       aliases {
+               serial0 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       reserved-memory {
+               xbl_mem: xbl@80700000 {
+                       reg = <0x0 0x80700000 0x0 0x100000>;
+                       no-map;
+               };
+
+               cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
+                       reg = <0x0 0x81800000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               camera_mem: camera@84300000 {
+                       reg = <0x0 0x84300000 0x0 0x500000>;
+                       no-map;
+               };
+
+               wpss_mem: wpss@84800000 {
+                       reg = <0x0 0x84800000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp@86100000 {
+                       reg = <0x0 0x86100000 0x0 0x2800000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@88900000 {
+                       reg = <0x0 0x88900000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               video_mem: video@8a700000 {
+                       reg = <0x0 0x8a700000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp@8ae00000 {
+                       reg = <0x0 0x8ae00000 0x0 0x500000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw@8b300000 {
+                       reg = <0x0 0x8b300000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi@8b310000 {
+                       reg = <0x0 0x8b310000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_microcode_mem: gpu-microcode@8b31a000 {
+                       reg = <0x0 0x8b31a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@8b800000 {
+                       reg = <0x0 0x8b800000 0x0 0xf600000>;
+                       no-map;
+               };
+
+               tz_stat_mem: tz-stat@c0000000 {
+                       reg = <0x0 0xc0000000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tags_mem: tags@c0100000 {
+                       reg = <0x0 0xc0100000 0x0 0x1200000>;
+                       no-map;
+               };
+
+               qtee_mem: qtee@c1300000 {
+                       reg = <0x0 0xc1300000 0x0 0x500000>;
+                       no-map;
+               };
+
+               trusted_apps_mem: trusted_apps@c1800000 {
+                       reg = <0x0 0xc1800000 0x0 0x1c00000>;
+                       no-map;
+               };
+
+               debug_vm_mem: debug-vm@d0600000 {
+                       reg = <0x0 0xd0600000 0x0 0x100000>;
+                       no-map;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <4350000>;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm7325-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
+               vdd-l2-l7-supply = <&vreg_bob_3p296>;
+               vdd-l3-supply = <&vreg_s2b_0p876>;
+               vdd-l5-supply = <&vreg_s2b_0p876>;
+               vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
+               vdd-l8-supply = <&vreg_s7b_0p972>;
+               vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
+               vdd-l13-supply = <&vreg_s7b_0p972>;
+               vdd-l14-l16-supply = <&vreg_s8b_1p272>;
+
+               vreg_s1b_1p872: smps1 {
+                       regulator-min-microvolt = <1840000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s2b_0p876: smps2 {
+                       regulator-min-microvolt = <570070>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7b_0p972: smps7 {
+                       regulator-min-microvolt = <535000>;
+                       regulator-max-microvolt = <1120000>;
+               };
+
+               vreg_s8b_1p272: smps8 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+               };
+
+               vreg_l1b_0p912: ldo1 {
+                       regulator-min-microvolt = <825000>;
+                       regulator-max-microvolt = <925000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p072: ldo2 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p504: ldo3 {
+                       regulator-min-microvolt = <312000>;
+                       regulator-max-microvolt = <910000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_0p752: ldo4 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <820000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               reg_l5b_0p752: ldo5 {
+                       regulator-min-microvolt = <552000>;
+                       regulator-max-microvolt = <832000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       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-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_0p904: ldo8 {
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p504: ldo11 {
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_0p751: ldo12 {
+                       regulator-min-microvolt = <751000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_0p53: ldo13 {
+                       regulator-min-microvolt = <530000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_1p08: ldo14 {
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_0p765: ldo15 {
+                       regulator-min-microvolt = <765000>;
+                       regulator-max-microvolt = <1020000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_1p1: ldo16 {
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_1p7: ldo17 {
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18b_1p8: ldo18 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19b_1p8: ldo19 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8350c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-l1-l12-supply = <&vreg_s1b_1p872>;
+               vdd-l2-l8-supply = <&vreg_s1b_1p872>;
+               vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
+               vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
+               vdd-l10-supply = <&vreg_s7b_0p972>;
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s1c_2p19: smps1 {
+                       regulator-min-microvolt = <2190000>;
+                       regulator-max-microvolt = <2210000>;
+               };
+
+               vreg_s2c_0p752: smps2 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s5c_0p752: smps5 {
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7c_0p752: smps7 {
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s9c_1p084: smps9 {
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p62: ldo2 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_2p8: ldo3 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3540000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_1p62: ldo4 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_1p62: ldo5 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_2p96: ldo6 {
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p62: ldo8 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <35440000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_0p88: ldo10 {
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_2p8: ldo11 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p65: ldo12 {
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_2p7: ldo13 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob_3p296: bob {
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+               };
+       };
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&sdhc_1 {
+       non-removable;
+       no-sd;
+       no-sdio;
+
+       vmmc-supply = <&vreg_l7b_2p952>;
+       vqmmc-supply = <&vreg_l19b_1p8>;
+
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <32 2>, /* ADSP */
+                              <48 4>; /* NFC */
+};
+
+&uart5 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l10c_0p88>;
+       vdda33-supply = <&vreg_l2b_3p072>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l1b_0p912>;
+
+       status = "okay";
+};
+
+&wifi {
+       memory-region = <&wlan_fw_mem>;
+};
index 2721f32dfb7104e1bc00afc556e23b37ec982d07..2f2eeaf2e945781056add9a0d5c5fce3541471c9 100644 (file)
                        reg = <0x00400000 0x80000>;
                        compatible = "qcom,qcs404-bimc";
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                               <&rpmcc RPM_SMD_BIMC_A_CLK>;
                };
 
                tsens: thermal-sensor@4a9000 {
                        reg = <0x00500000 0x15080>;
                        compatible = "qcom,qcs404-pcnoc";
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
-                               <&rpmcc RPM_SMD_PNOC_A_CLK>;
                };
 
                snoc: interconnect@580000 {
                        reg = <0x00580000 0x23080>;
                        compatible = "qcom,qcs404-snoc";
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                               <&rpmcc RPM_SMD_SNOC_A_CLK>;
                };
 
                remoteproc_cdsp: remoteproc@b00000 {
                        };
                };
 
-               pcie: pci@10000000 {
+               pcie: pcie@10000000 {
                        compatible = "qcom,pcie-qcs404";
                        reg = <0x10000000 0xf1d>,
                              <0x10000f20 0xa8>,
diff --git a/src/arm64/qcom/qcs6490-rb3gen2.dts b/src/arm64/qcom/qcs6490-rb3gen2.dts
new file mode 100644 (file)
index 0000000..8bb7d13
--- /dev/null
@@ -0,0 +1,455 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+/* PM7250B is configured to use SID8/9 */
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc7280.dtsi"
+#include "pm7250b.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &remoteproc_mpss;
+/delete-node/ &rmtfs_mem;
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &video_mem;
+/delete-node/ &wlan_ce_mem;
+/delete-node/ &wpss_mem;
+/delete-node/ &xbl_mem;
+
+/ {
+       model = "Qualcomm Technologies, Inc. Robotics RB3gen2";
+       compatible = "qcom,qcs6490-rb3gen2", "qcom,qcm6490";
+       chassis-type = "embedded";
+
+       aliases {
+               serial0 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       reserved-memory {
+               xbl_mem: xbl@80700000 {
+                       reg = <0x0 0x80700000 0x0 0x100000>;
+                       no-map;
+               };
+
+               cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
+                       reg = <0x0 0x81800000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               camera_mem: camera@84300000 {
+                       reg = <0x0 0x84300000 0x0 0x500000>;
+                       no-map;
+               };
+
+               wpss_mem: wpss@84800000 {
+                       reg = <0x0 0x84800000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp@86100000 {
+                       reg = <0x0 0x86100000 0x0 0x2800000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@88900000 {
+                       reg = <0x0 0x88900000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               video_mem: video@8a700000 {
+                       reg = <0x0 0x8a700000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp@8ae00000 {
+                       reg = <0x0 0x8ae00000 0x0 0x500000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw@8b300000 {
+                       reg = <0x0 0x8b300000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi@8b310000 {
+                       reg = <0x0 0x8b310000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_microcode_mem: gpu-microcode@8b31a000 {
+                       reg = <0x0 0x8b31a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               tz_stat_mem: tz-stat@c0000000 {
+                       reg = <0x0 0xc0000000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tags_mem: tags@c0100000 {
+                       reg = <0x0 0xc0100000 0x0 0x1200000>;
+                       no-map;
+               };
+
+               qtee_mem: qtee@c1300000 {
+                       reg = <0x0 0xc1300000 0x0 0x500000>;
+                       no-map;
+               };
+
+               trusted_apps_mem: trusted_apps@c1800000 {
+                       reg = <0x0 0xc1800000 0x0 0x1c00000>;
+                       no-map;
+               };
+
+               debug_vm_mem: debug-vm@d0600000 {
+                       reg = <0x0 0xd0600000 0x0 0x100000>;
+                       no-map;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <4350000>;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm7325-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
+               vdd-l2-l7-supply = <&vreg_bob_3p296>;
+               vdd-l3-supply = <&vreg_s2b_0p876>;
+               vdd-l5-supply = <&vreg_s2b_0p876>;
+               vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
+               vdd-l8-supply = <&vreg_s7b_0p972>;
+               vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
+               vdd-l13-supply = <&vreg_s7b_0p972>;
+               vdd-l14-l16-supply = <&vreg_s8b_1p272>;
+
+               vreg_s1b_1p872: smps1 {
+                       regulator-min-microvolt = <1840000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s2b_0p876: smps2 {
+                       regulator-min-microvolt = <570070>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7b_0p972: smps7 {
+                       regulator-min-microvolt = <535000>;
+                       regulator-max-microvolt = <1120000>;
+               };
+
+               vreg_s8b_1p272: smps8 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+               };
+
+               vreg_l1b_0p912: ldo1 {
+                       regulator-min-microvolt = <825000>;
+                       regulator-max-microvolt = <925000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p072: ldo2 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p504: ldo3 {
+                       regulator-min-microvolt = <312000>;
+                       regulator-max-microvolt = <910000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_0p752: ldo4 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <820000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               reg_l5b_0p752: ldo5 {
+                       regulator-min-microvolt = <552000>;
+                       regulator-max-microvolt = <832000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       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-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_0p904: ldo8 {
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p504: ldo11 {
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_0p751: ldo12 {
+                       regulator-min-microvolt = <751000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_0p53: ldo13 {
+                       regulator-min-microvolt = <530000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_1p08: ldo14 {
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_0p765: ldo15 {
+                       regulator-min-microvolt = <765000>;
+                       regulator-max-microvolt = <1020000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_1p1: ldo16 {
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_1p7: ldo17 {
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18b_1p8: ldo18 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19b_1p8: ldo19 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8350c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-l1-l12-supply = <&vreg_s1b_1p872>;
+               vdd-l2-l8-supply = <&vreg_s1b_1p872>;
+               vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
+               vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
+               vdd-l10-supply = <&vreg_s7b_0p972>;
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s1c_2p19: smps1 {
+                       regulator-min-microvolt = <2190000>;
+                       regulator-max-microvolt = <2210000>;
+               };
+
+               vreg_s2c_0p752: smps2 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s5c_0p752: smps5 {
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7c_0p752: smps7 {
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s9c_1p084: smps9 {
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p62: ldo2 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_2p8: ldo3 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3540000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_1p62: ldo4 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_1p62: ldo5 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_2p96: ldo6 {
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p62: ldo8 {
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <35440000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_0p88: ldo10 {
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_2p8: ldo11 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p65: ldo12 {
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_2p7: ldo13 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob_3p296: bob {
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+               };
+       };
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <32 2>, /* ADSP */
+                              <48 4>; /* NFC */
+};
+
+&uart5 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l10c_0p88>;
+       vdda33-supply = <&vreg_l2b_3p072>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l1b_0p912>;
+
+       status = "okay";
+};
+
+&wifi {
+       memory-region = <&wlan_fw_mem>;
+};
index 1c0e5d271e91bb1c55445423a84b082ece168070..832f472c4b7a5ef05a6a5f8e6c537f64b4d1a14c 100644 (file)
                        #power-domain-cells = <1>;
                };
 
+               ecpricc: clock-controller@280000 {
+                       compatible = "qcom,qdu1000-ecpricc";
+                       reg = <0x0 0x00280000 0x0 0x31c00>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_ECPRI_CC_GPLL0_CLK_SRC>,
+                                <&gcc GCC_ECPRI_CC_GPLL1_EVEN_CLK_SRC>,
+                                <&gcc GCC_ECPRI_CC_GPLL2_EVEN_CLK_SRC>,
+                                <&gcc GCC_ECPRI_CC_GPLL3_CLK_SRC>,
+                                <&gcc GCC_ECPRI_CC_GPLL4_CLK_SRC>,
+                                <&gcc GCC_ECPRI_CC_GPLL5_EVEN_CLK_SRC>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
                gpi_dma0: dma-controller@900000  {
                        compatible = "qcom,qdu1000-gpi-dma", "qcom,sm6350-gpi-dma";
                        reg = <0x0 0x900000 0x0 0x60000>;
                system-cache-controller@19200000 {
                        compatible = "qcom,qdu1000-llcc";
                        reg = <0 0x19200000 0 0xd80000>,
-                             <0 0x1a200000 0 0x80000>,
-                             <0 0x221c8128 0 0x4>;
-                       reg-names = "llcc_base",
-                                   "llcc_broadcast_base",
-                                   "multi_channel_register";
+                             <0 0x1a200000 0 0x80000>;
+                       reg-names = "llcc0_base",
+                                   "llcc_broadcast_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
-                       multi-ch-bit-off = <24 2>;
                };
        };
 
index 94885b9c21c89d0412e071c1e8145d093dfc4097..aa53b6af6d9cbd1c1331f0ddf06a7aab70336eb3 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       clocks {
+               clk40M: can-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <40000000>;
+                       #clock-cells = <0>;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                label = "gpio-keys";
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
 
        };
 };
 
+&gpi_dma0 {
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       lt9611_codec: hdmi-bridge@2b {
+               compatible = "lontium,lt9611uxc";
+               reg = <0x2b>;
+               interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&vreg_hdmi_out_1p2>;
+               vcc-supply = <&lt9611_3v3>;
+
+               pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <1>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lt9611_a: endpoint {
+                                       remote-endpoint = <&mdss_dsi0_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               lt9611_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&pm2250_l5>;
+       status = "okay";
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&lt9611_a>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+};
+
 &pm2250_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
        status = "okay";
 };
 
+&spi5 {
+       status = "okay";
+
+       can@0 {
+               compatible = "microchip,mcp2518fd";
+               reg = <0>;
+               interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&clk40M>;
+               spi-max-frequency = <10000000>;
+               vdd-supply = <&vdc_5v>;
+               xceiver-supply = <&vdc_5v>;
+       };
+};
+
 &tlmm {
+       lt9611_rst_pin: lt9611-rst-state {
+               pins = "gpio41";
+               function = "gpio";
+               input-disable;
+               output-high;
+       };
+
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio46";
+               function = "gpio";
+               bias-disable;
+       };
+
        sd_det_in_on: sd-det-in-on-state {
                pins = "gpio88";
                function = "gpio";
        status = "okay";
 };
 
+&usb_dwc3 {
+       dr_mode = "host";
+};
+
 &usb_hsphy {
        vdd-supply = <&pm2250_l12>;
        vdda-pll-supply = <&pm2250_l13>;
        vdd-1.8-xo-supply = <&pm2250_l13>;
        vdd-1.3-rfa-supply = <&pm2250_l10>;
        vdd-3.3-ch0-supply = <&pm2250_l22>;
+       qcom,ath10k-calibration-variant = "Thundercomm_RB1";
        status = "okay";
 };
 
index a7278a9472ed9bfed1bea6dbb8c9d28e1499fce8..7c19f874fa716d1ca616deaf5537001204e7f9f0 100644 (file)
@@ -15,6 +15,7 @@
 
        aliases {
                serial0 = &uart4;
+               serial1 = &uart3;
        };
 
        chosen {
        status = "okay";
 };
 
+&remoteproc_mpss {
+       firmware-name = "qcom/qrb4210/modem.mbn";
+
+       status = "okay";
+};
+
 &rpm_requests {
        regulators {
                compatible = "qcom,rpm-pm6125-regulators";
                };
 
                vreg_l8a_0p664: l8 {
-                       regulator-min-microvolt = <400000>;
-                       regulator-max-microvolt = <728000>;
+                       regulator-min-microvolt = <640000>;
+                       regulator-max-microvolt = <640000>;
                };
 
                vreg_l9a_1p8: l9 {
                        regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2000000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l10a_1p8: l10 {
                vreg_l16a_1p3: l16 {
                        regulator-min-microvolt = <1704000>;
                        regulator-max-microvolt = <1904000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l17a_1p3: l17 {
                        regulator-min-microvolt = <1152000>;
                        regulator-max-microvolt = <1384000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l18a_1p232: l18 {
                };
 
                vreg_l23a_3p3: l23 {
-                       regulator-min-microvolt = <3200000>;
-                       regulator-max-microvolt = <3400000>;
+                       regulator-min-microvolt = <3312000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-allow-set-load;
                };
 
                vreg_l24a_2p96: l24 {
                               <56 3>, <61 2>, <64 1>,
                               <68 1>, <72 8>, <96 1>;
 
+       uart3_default: uart3-default-state {
+               cts-pins {
+                       pins = "gpio8";
+                       function = "qup3";
+                       drive-strength = <2>;
+                       bias-bus-hold;
+               };
+
+               rts-pins {
+                       pins = "gpio9";
+                       function = "qup3";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               tx-pins {
+                       pins = "gpio10";
+                       function = "qup3";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               rx-pins {
+                       pins = "gpio11";
+                       function = "qup3";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       uart3_sleep: uart3-sleep-state {
+               cts-pins {
+                       pins = "gpio8";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-bus-hold;
+               };
+
+               rts-pins {
+                       pins = "gpio9";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               tx-pins {
+                       pins = "gpio10";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               rx-pins {
+                       pins = "gpio11";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        lt9611_rst_pin: lt9611-rst-state {
                pins = "gpio41";
                function = "gpio";
        };
 };
 
+&uart3 {
+       interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                             <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
+       pinctrl-0 = <&uart3_default>;
+       pinctrl-1 = <&uart3_sleep>;
+       pinctrl-names = "default", "sleep";
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn3988-bt";
+
+               vddio-supply = <&vreg_l9a_1p8>;
+               vddxo-supply = <&vreg_l16a_1p3>;
+               vddrf-supply = <&vreg_l17a_1p3>;
+               vddch0-supply = <&vreg_l23a_3p3>;
+               enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+               max-speed = <3200000>;
+       };
+};
+
 &uart4 {
        status = "okay";
 };
 
 &usb_dwc3 {
        maximum-speed = "super-speed";
-       dr_mode = "peripheral";
 };
 
 &usb_hsphy {
        status = "okay";
 };
 
+&wifi {
+       vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>;
+       vdd-1.8-xo-supply = <&vreg_l16a_1p3>;
+       vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
+       qcom,ath10k-calibration-variant = "Thundercomm_RB2";
+
+       status = "okay";
+};
+
 &xo_board {
        clock-frequency = <19200000>;
 };
index bb149e577914edbd6a419d5efcbd9a8d6a2c9a85..edc0e42ee01735eda96b2c5c68be247ea37cd534 100644 (file)
@@ -46,7 +46,7 @@
                assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
                assigned-clock-rates = <24000000>;
 
-               dovdd-supply  = <&vreg_l7f_1p8>;
+               dovdd-supply = <&vreg_l7f_1p8>;
                avdd-supply = <&vdc_5v>;
                dvdd-supply = <&vdc_5v>;
 
index c8cd40a462a3f5b424c858e88edf3f058728e62c..cd0db4f31d4af915058d2a817cc397d3cc5f40e7 100644 (file)
@@ -23,6 +23,7 @@
 
        aliases {
                serial0 = &uart12;
+               serial1 = &uart6;
                sdhc2 = &sdhc_2;
        };
 
@@ -64,8 +65,8 @@
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "panic-indicator";
                        default-state = "off";
+                       panic-indicator;
                };
 
                led-wlan {
                "HST_WLAN_UART_TX",
                "HST_WLAN_UART_RX";
 
+       bt_en_state: bt-default-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <16>;
+               output-low;
+               bias-pull-up;
+       };
+
        lt9611_irq_pin: lt9611-irq-state {
                pins = "gpio63";
                function = "gpio";
        };
 };
 
+&uart6 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,qca6390-bt";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_en_state>;
+
+               enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+               vddio-supply = <&vreg_s4a_1p8>;
+               vddpmu-supply = <&vreg_s2f_0p95>;
+               vddaon-supply = <&vreg_s6a_0p95>;
+               vddrfa0p9-supply = <&vreg_s2f_0p95>;
+               vddrfa1p3-supply = <&vreg_s8c_1p3>;
+               vddrfa1p9-supply = <&vreg_s5a_1p9>;
+       };
+};
+
 &uart12 {
        status = "okay";
 };
 
                altmodes {
                        displayport {
-                               svid = <0xff01>;
+                               svid = /bits/ 16 <0xff01>;
                                vdo = <0x00001c46>;
                        };
                };
index 9760bb4b468c4ec3970e3f2c75df35e6fddae1a7..26ad05bd3b3ff054d421025d22948c22e9bc6469 100644 (file)
                          "ANALOG_PON_OPT";
 };
 
+&pmm8654au_0_pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
 &pmm8654au_1_gpios {
        gpio-line-names = "PMIC_C_ID0",
                          "PMIC_C_ID1",
index b6a93b11cbbd4e85339de3d3de42474940eb08fc..a7eaca33d326441d64df943bc72258b6d2d29707 100644 (file)
                        };
                };
 
+               rng: rng@10d2000 {
+                       compatible = "qcom,sa8775p-trng", "qcom,trng";
+                       reg = <0 0x010d2000 0 0x1000>;
+               };
+
                ufs_mem_hc: ufs@1d84000 {
                        compatible = "qcom,sa8775p-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
                        reg = <0x0 0x01d84000 0x0 0x3000>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 15 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 12 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
                                          "dp_hs_phy_irq",
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 8 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 7 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 7 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 13 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
                                          "dp_hs_phy_irq",
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 10 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 9 IRQ_TYPE_EDGE_RISING>;
+                                             <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "pwr_event",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq";
                        interrupt-controller;
                };
 
+               tsens2: thermal-sensor@c251000 {
+                       compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c251000 0x0 0x1ff>,
+                             <0x0 0x0c224000 0x0 0x8>;
+                       interrupts = <GIC_SPI 572 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 609 IRQ_TYPE_LEVEL_HIGH>;
+                       #qcom,sensors = <13>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens3: thermal-sensor@c252000 {
+                       compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c252000 0x0 0x1ff>,
+                             <0x0 0x0c225000 0x0 0x8>;
+                       interrupts = <GIC_SPI 573 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 610 IRQ_TYPE_LEVEL_HIGH>;
+                       #qcom,sensors = <13>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens0: thermal-sensor@c263000 {
+                       compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c263000 0x0 0x1ff>,
+                             <0x0 0x0c222000 0x0 0x8>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+                       #qcom,sensors = <12>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c265000 {
+                       compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c265000 0x0 0x1ff>,
+                             <0x0 0x0c223000 0x0 0x8>;
+                       interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
+                       #qcom,sensors = <12>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
                aoss_qmp: power-management@c300000 {
                        compatible = "qcom,sa8775p-aoss-qmp", "qcom,aoss-qmp";
                        reg = <0x0 0x0c300000 0x0 0x400>;
                        #clock-cells = <0>;
                };
 
+               sram@c3f0000 {
+                       compatible = "qcom,rpmh-stats";
+                       reg = <0x0 0x0c3f0000 0x0 0x400>;
+               };
+
                spmi_bus: spmi@c440000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0 0x0c440000 0x0 0x1100>,
                        compatible = "qcom,apss-wdt-sa8775p", "qcom,kpss-wdt";
                        reg = <0x0 0x17c10000 0x0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                memtimer: timer@17c20000 {
                };
        };
 
+       thermal-zones {
+               aoss-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-0-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-1-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-2-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-3-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-2-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               audio-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               camss-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pcie-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss-0-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               aoss-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-0-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-1-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-2-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-0-3-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-3-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-4-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               gpuss-5-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               camss-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pcie-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss-0-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens1 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               aoss-2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-0-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-1-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-2-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-3-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-0-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-1-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-2-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-0-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-1-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-2-0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               ddrss-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss-1-0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens2 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               aoss-3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-0-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-1-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-2-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu-1-3-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-0-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-1-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-0-2-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-0-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-1-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               nsp-1-2-1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               ddrss-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss-1-1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&tsens3 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
+
        arch_timer: timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
-       pcie0: pci@1c00000{
+       pcie0: pcie@1c00000 {
                compatible = "qcom,pcie-sa8775p";
                reg = <0x0 0x01c00000 0x0 0x3000>,
                      <0x0 0x40000000 0x0 0xf20>,
                status = "disabled";
        };
 
-       pcie1: pci@1c10000{
+       pcie1: pcie@1c10000 {
                compatible = "qcom,pcie-sa8775p";
                reg = <0x0 0x01c10000 0x0 0x3000>,
                      <0x0 0x60000000 0x0 0xf20>,
index dbb48934d4995029170686a10552610df5fccfcd..5afcb8212f490031cb6b1be367af463db69298d8 100644 (file)
@@ -3,6 +3,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "sc7180.dtsi"
                pinctrl-names = "default";
        };
 
+       sound: sound {
+               compatible = "qcom,sc7180-qdsp6-sndcard";
+               pinctrl-0 = <&pri_mi2s_active>, <&pri_mi2s_mclk_active>, <&ter_mi2s_active>;
+               pinctrl-names = "default";
+               model = "Acer-Aspire-1";
+
+               audio-routing =
+                       "Headphone Jack", "HPOL",
+                       "Headphone Jack", "HPOR";
+
+               multimedia1-dai-link {
+                       link-name = "MultiMedia1";
+
+                       cpu {
+                               sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+                       };
+               };
+
+               multimedia2-dai-link {
+                       link-name = "MultiMedia2";
+
+                       cpu {
+                               sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
+                       };
+               };
+
+               multimedia3-dai-link {
+                       link-name = "MultiMedia3";
+
+                       cpu {
+                               sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+                       };
+               };
+
+               multimedia4-dai-link {
+                       link-name = "MultiMedia4";
+
+                       cpu {
+                               sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
+                       };
+               };
+
+               primary-rx-dai-link {
+                       link-name = "Primary MI2S Playback";
+
+                       cpu {
+                               sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6routing>;
+                       };
+
+                       codec {
+                               sound-dai = <&alc5682 0>;
+                       };
+               };
+
+               primary-tx-dai-link {
+                       link-name = "Primary MI2S Capture";
+
+                       cpu {
+                               sound-dai = <&q6afedai PRIMARY_MI2S_TX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6routing>;
+                       };
+
+                       codec {
+                               sound-dai = <&alc5682 0>;
+                       };
+               };
+
+               tertiary-rx-dai-link {
+                       link-name = "Tertiary MI2S Playback";
+
+                       cpu {
+                               sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6routing>;
+                       };
+
+                       codec {
+                               sound-dai = <&max98357a>;
+                       };
+               };
+
+               displayport-rx-dai-link {
+                       link-name = "DisplayPort Playback";
+
+                       cpu {
+                               sound-dai = <&q6afedai DISPLAY_PORT_RX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6routing>;
+                       };
+
+                       codec {
+                               sound-dai = <&mdss_dp>;
+                       };
+               };
+       };
+
        reg_tp_3p3: touchpad-regulator {
                compatible = "regulator-fixed";
                regulator-name = "tp_3p3";
                AVDD-supply = <&vreg_l15a_1p8>;
                MICVDD-supply = <&reg_codec_3p3>;
                VBAT-supply = <&reg_codec_3p3>;
+               DBVDD-supply = <&vreg_l15a_1p8>;
+               LDO1-IN-supply = <&vreg_l15a_1p8>;
+
+               /*
+                * NOTE: The board has a path from this codec to the
+                * DMIC microphones in the lid, however some of the option
+                * resistors are absent and the microphones are connected
+                * to the SoC instead.
+                *
+                * If the resistors were to be changed by the user to
+                * connect the codec, the following could be used:
+                *
+                * realtek,dmic1-data-pin = <1>;
+                * realtek,dmic1-clk-pin = <1>;
+                */
 
-               realtek,dmic1-data-pin = <1>;
-               realtek,dmic1-clk-pin = <1>;
                realtek,jd-src = <1>;
        };
 };
        status = "disabled";
 };
 
+&pm6150_rtc {
+       status = "okay";
+};
+
+&q6afedai {
+       dai@16 {
+               reg = <PRIMARY_MI2S_RX>;
+               qcom,sd-lines = <1>;
+       };
+
+       dai@17 {
+               reg = <PRIMARY_MI2S_TX>;
+               qcom,sd-lines = <0>;
+       };
+
+       dai@20 {
+               reg = <TERTIARY_MI2S_RX>;
+               qcom,sd-lines = <0>;
+       };
+
+       dai@104 {
+               reg = <DISPLAY_PORT_RX>;
+       };
+};
+
+&q6asmdai {
+       dai@0 {
+               reg = <0>;
+       };
+
+       dai@1 {
+               reg = <1>;
+       };
+
+       dai@2 {
+               reg = <2>;
+       };
+
+       dai@3 {
+               reg = <3>;
+       };
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
        status = "okay";
 };
 
+&remoteproc_adsp {
+       memory-region = <&adsp_mem>;
+       firmware-name = "qcom/sc7180/acer/aspire1/qcadsp7180.mbn";
+       status = "okay";
+};
+
 &remoteproc_mpss {
        firmware-name = "qcom/sc7180/acer/aspire1/qcmpss7180_nm.mbn";
        status = "okay";
index 0be62331f9825c93431a679e3d4f85af9ec046f1..067813f5f437e676926f7d038916e425d4af0c2e 100644 (file)
@@ -141,7 +141,7 @@ ap_ts_pen_1v8: &i2c4 {
 };
 
 &panel {
-       compatible = "kingdisplay,kd116n21-30nv-a010";
+       compatible = "edp-panel";
 };
 
 &pen_insert {
index 11f353d416b4d585ce870cc1b3a41697f2e8e5a5..4dcaa15caef263d9917ca62b01c1b0b82bf547ab 100644 (file)
 
                        interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 8 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 9 IRQ_TYPE_LEVEL_HIGH>;
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                        interrupt-controller;
                        #interrupt-cells = <1>;
 
-                       interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>;
-                       interconnect-names = "mdp0-mem";
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "mdp0-mem",
+                                            "cpu-cfg";
 
                        iommus = <&apps_smmu 0x800 0x2>;
 
                        compatible = "qcom,apss-wdt-sc7180", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                timer@17c20000 {
index 5d462ae14ba12250ccd2d75eecb6b4f64708aa37..c4d00a81da394e54650ae87adb136545cdd38cdf 100644 (file)
@@ -17,6 +17,9 @@
  * required by the setup for Chrome boards.
  */
 
+/delete-node/ &cdsp_mem;
+/delete-node/ &gpu_zap_mem;
+/delete-node/ &gpu_zap_shader;
 /delete-node/ &hyp_mem;
 /delete-node/ &xbl_mem;
 /delete-node/ &reserved_xbl_uefi_log;
 
 / {
        reserved-memory {
-               adsp_mem: memory@86700000 {
-                       reg = <0x0 0x86700000 0x0 0x2800000>;
-                       no-map;
-               };
-
                camera_mem: memory@8ad00000 {
                        reg = <0x0 0x8ad00000 0x0 0x500000>;
                        no-map;
                        reg = <0x0 0x8b200000 0x0 0x500000>;
                        no-map;
                };
-
-               wpss_mem: memory@9ae00000 {
-                       reg = <0x0 0x9ae00000 0x0 0x1900000>;
-                       no-map;
-               };
        };
 };
 
        };
 };
 
+/* Currently not used */
+&remoteproc_cdsp {
+       /delete-property/ memory-region;
+};
+
 &remoteproc_wpss {
-       status = "okay";
+       compatible = "qcom,sc7280-wpss-pil";
+       clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
+                <&gcc GCC_WPSS_AHB_CLK>,
+                <&gcc GCC_WPSS_RSCP_CLK>,
+                <&rpmhcc RPMH_CXO_CLK>;
+       clock-names = "ahb_bdg",
+                     "ahb",
+                     "rscp",
+                     "xo";
+
+       resets = <&aoss_reset AOSS_CC_WCSS_RESTART>,
+                <&pdc_reset PDC_WPSS_SYNC_RESET>;
+       reset-names = "restart", "pdc_sync";
+
+       qcom,halt-regs = <&tcsr_1 0x17000>;
+
        firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt";
+
+       status = "okay";
 };
 
 &scm {
index 95505549adccd5d1185eed9ad4a0bca27e7b7ce2..b721a8546800cc97701bc211cea9b8805030eb10 100644 (file)
@@ -8,11 +8,6 @@
 
 / {
        reserved-memory {
-               mpss_mem: memory@8b800000 {
-                       reg = <0x0 0x8b800000 0x0 0xf600000>;
-                       no-map;
-               };
-
                mba_mem: memory@9c700000 {
                        reg = <0x0 0x9c700000 0x0 0x200000>;
                        no-map;
@@ -33,6 +28,8 @@
 
 &remoteproc_mpss {
        compatible = "qcom,sc7280-mss-pil";
+       reg = <0 0x04080000 0 0x10000>, <0 0x04180000 0 0x48>;
+       reg-names = "qdsp6", "rmb";
 
        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
                 <&gcc GCC_MSS_OFFLINE_AXI_CLK>,
index 2febd6126d4c84583856adbefec12da018c76b88..3ebc915f0dc2f6a5f03805f37187af4d46d55795 100644 (file)
@@ -7,5 +7,6 @@
 
 /* WIFI SKUs save 256M by not having modem/mba/rmtfs memory regions defined. */
 
+/delete-node/ &mpss_mem;
 /delete-node/ &remoteproc_mpss;
 /delete-node/ &rmtfs_mem;
index 2ff549f4dc7a992ca5c794d4321fced766567bc7..a0059527d9e48a45e542010143740019cd612d44 100644 (file)
        status = "okay";
 };
 
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l7b_2p9>;
+       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_0p8>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
+       status = "okay";
+};
+
 &usb_1 {
        status = "okay";
 };
index 66f1eb83cca7e73b34a341e1ba21fc1419538caa..83b5b76ba17940e4582a680b039cdb8c17acc19e 100644 (file)
@@ -15,6 +15,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,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sc7280.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                #size-cells = <2>;
                ranges;
 
-               wlan_ce_mem: memory@4cd000 {
+               wlan_ce_mem: wlan-ce@4cd000 {
                        no-map;
                        reg = <0x0 0x004cd000 0x0 0x1000>;
                };
 
-               hyp_mem: memory@80000000 {
+               hyp_mem: hyp@80000000 {
                        reg = <0x0 0x80000000 0x0 0x600000>;
                        no-map;
                };
 
-               xbl_mem: memory@80600000 {
+               xbl_mem: xbl@80600000 {
                        reg = <0x0 0x80600000 0x0 0x200000>;
                        no-map;
                };
 
-               aop_mem: memory@80800000 {
+               aop_mem: aop@80800000 {
                        reg = <0x0 0x80800000 0x0 0x60000>;
                        no-map;
                };
 
-               aop_cmd_db_mem: memory@80860000 {
+               aop_cmd_db_mem: aop-cmd-db@80860000 {
                        reg = <0x0 0x80860000 0x0 0x20000>;
                        compatible = "qcom,cmd-db";
                        no-map;
                };
 
-               reserved_xbl_uefi_log: memory@80880000 {
+               reserved_xbl_uefi_log: xbl-uefi-res@80880000 {
                        reg = <0x0 0x80884000 0x0 0x10000>;
                        no-map;
                };
 
-               sec_apps_mem: memory@808ff000 {
+               sec_apps_mem: sec-apps@808ff000 {
                        reg = <0x0 0x808ff000 0x0 0x1000>;
                        no-map;
                };
 
-               smem_mem: memory@80900000 {
+               smem_mem: smem@80900000 {
                        reg = <0x0 0x80900000 0x0 0x200000>;
                        no-map;
                };
 
-               cpucp_mem: memory@80b00000 {
+               cpucp_mem: cpucp@80b00000 {
                        no-map;
                        reg = <0x0 0x80b00000 0x0 0x100000>;
                };
 
-               wlan_fw_mem: memory@80c00000 {
+               wlan_fw_mem: wlan-fw@80c00000 {
                        reg = <0x0 0x80c00000 0x0 0xc00000>;
                        no-map;
                };
 
-               video_mem: memory@8b200000 {
+               adsp_mem: adsp@86700000 {
+                       reg = <0x0 0x86700000 0x0 0x2800000>;
+                       no-map;
+               };
+
+               video_mem: video@8b200000 {
                        reg = <0x0 0x8b200000 0x0 0x500000>;
                        no-map;
                };
 
-               ipa_fw_mem: memory@8b700000 {
+               cdsp_mem: cdsp@88f00000 {
+                       reg = <0x0 0x88f00000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw@8b700000 {
                        reg = <0 0x8b700000 0 0x10000>;
                        no-map;
                };
 
-               rmtfs_mem: memory@9c900000 {
+               gpu_zap_mem: zap@8b71a000 {
+                       reg = <0 0x8b71a000 0 0x2000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@8b800000 {
+                       reg = <0x0 0x8b800000 0x0 0xf600000>;
+                       no-map;
+               };
+
+               wpss_mem: wpss@9ae00000 {
+                       reg = <0x0 0x9ae00000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs@9c900000 {
                        compatible = "qcom,rmtfs-mem";
                        reg = <0x0 0x9c900000 0x0 0x280000>;
                        no-map;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
                                 <0>, <&pcie1_phy>,
-                                <0>, <0>, <0>,
+                                <&ufs_mem_phy 0>, <&ufs_mem_phy 1>, <&ufs_mem_phy 2>,
                                 <&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
                        clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
                                      "pcie_0_pipe_clk", "pcie_1_pipe_clk",
 
                        bus-width = <8>;
                        supports-cqe;
+                       dma-coherent;
 
                        qcom,dll-config = <0x0007642c>;
                        qcom,ddr-config = <0x80040868>;
                        };
                };
 
+               rng: rng@10d3000 {
+                       compatible = "qcom,sc7280-trng", "qcom,trng";
+                       reg = <0 0x010d3000 0 0x1000>;
+               };
+
                cnoc2: interconnect@1500000 {
                        reg = <0 0x01500000 0 0x1000>;
                        compatible = "qcom,sc7280-cnoc2";
                        qcom,smem-state-names = "wlan-smp2p-out";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sc7280";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                        status = "disabled";
                };
 
+               ufs_mem_hc: ufs@1d84000 {
+                       compatible = "qcom,sc7280-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0x0 0x01d84000 0x0 0x3000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       iommus = <&apps_smmu 0x80 0x0>;
+                       dma-coherent;
+
+                       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
+                                        &cnoc2 SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "ufs-ddr", "cpu-ufs";
+
+                       clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_UFS_PHY_AHB_CLK>,
+                                <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       clock-names = "core_clk",
+                                     "bus_aggr_clk",
+                                     "iface_clk",
+                                     "core_clk_unipro",
+                                     "ref_clk",
+                                     "tx_lane0_sync_clk",
+                                     "rx_lane0_sync_clk",
+                                     "rx_lane1_sync_clk";
+                       freq-table-hz =
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>;
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d87000 {
+                       compatible = "qcom,sc7280-qmp-ufs-phy";
+                       reg = <0x0 0x01d87000 0x0 0xe00>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_UFS_1_CLKREF_EN>;
+                       clock-names = "ref", "ref_aux", "qref";
+
+                       power-domains = <&rpmhpd SC7280_MX>;
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0x0 0x01dc4000 0x0 0x28000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       iommus = <&apps_smmu 0x4e4 0x0011>,
+                                <&apps_smmu 0x4e6 0x0011>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sc7280-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0x0 0x01dfa000 0x0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x4e4 0x0011>,
+                                <&apps_smmu 0x4e4 0x0011>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "memory";
+               };
+
                ipa: ipa@1e40000 {
                        compatible = "qcom,sc7280-ipa";
 
                                    "cx_mem",
                                    "cx_dbgc";
                        interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
-                       iommus = <&adreno_smmu 0 0x401>;
+                       iommus = <&adreno_smmu 0 0x400>,
+                                <&adreno_smmu 1 0x400>;
                        operating-points-v2 = <&gpu_opp_table>;
                        qcom,gmu = <&gmu>;
                        interconnects = <&gem_noc MASTER_GFX3D 0 &mc_virt SLAVE_EBI1 0>;
                        nvmem-cells = <&gpu_speed_bin>;
                        nvmem-cell-names = "speed_bin";
 
+                       gpu_zap_shader: zap-shader {
+                               memory-region = <&gpu_zap_mem>;
+                       };
+
                        gpu_opp_table: opp-table {
                                compatible = "operating-points-v2";
 
                                        opp-hz = /bits/ 64 <315000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
                                        opp-peak-kBps = <1804000>;
-                                       opp-supported-hw = <0x03>;
+                                       opp-supported-hw = <0x07>;
                                };
 
                                opp-450000000 {
                                        opp-hz = /bits/ 64 <450000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
                                        opp-peak-kBps = <4068000>;
-                                       opp-supported-hw = <0x03>;
+                                       opp-supported-hw = <0x07>;
                                };
 
                                /* Only applicable for SKUs which has 550Mhz as Fmax */
                                        opp-hz = /bits/ 64 <550000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
                                        opp-peak-kBps = <6832000>;
-                                       opp-supported-hw = <0x02>;
+                                       opp-supported-hw = <0x06>;
                                };
 
                                opp-608000000 {
                                        opp-hz = /bits/ 64 <608000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
                                        opp-peak-kBps = <8368000>;
-                                       opp-supported-hw = <0x02>;
+                                       opp-supported-hw = <0x06>;
                                };
 
                                opp-700000000 {
                                        opp-hz = /bits/ 64 <700000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
                                        opp-peak-kBps = <8532000>;
-                                       opp-supported-hw = <0x02>;
+                                       opp-supported-hw = <0x06>;
                                };
 
                                opp-812000000 {
                                        opp-hz = /bits/ 64 <812000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
                                        opp-peak-kBps = <8532000>;
-                                       opp-supported-hw = <0x02>;
+                                       opp-supported-hw = <0x06>;
                                };
 
                                opp-840000000 {
                                        "gpu_cc_hub_aon_clk";
 
                        power-domains = <&gpucc GPU_CC_CX_GDSC>;
+                       dma-coherent;
                };
 
                remoteproc_mpss: remoteproc@4080000 {
                        compatible = "qcom,sc7280-mpss-pas";
-                       reg = <0 0x04080000 0 0x10000>, <0 0x04180000 0 0x48>;
-                       reg-names = "qdsp6", "rmb";
+                       reg = <0 0x04080000 0 0x10000>;
 
                        interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
                                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                        operating-points-v2 = <&sdhc2_opp_table>;
 
                        bus-width = <4>;
+                       dma-coherent;
 
                        qcom,dll-config = <0x0007642c>;
 
 
                        #clock-cells = <1>;
                        #phy-cells = <1>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_dp_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_dp_qmpphy_usb_ss_in: endpoint {
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_dp_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
                };
 
                usb_2: usb@8cf8800 {
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 12 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 13 IRQ_TYPE_EDGE_RISING>;
+                                             <&pdc 12 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 13 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq";
                        status = "disabled";
                };
 
+               remoteproc_adsp: remoteproc@3700000 {
+                       compatible = "qcom,sc7280-adsp-pas";
+                       reg = <0 0x03700000 0 0x100>;
+
+                       interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC7280_LCX>,
+                                       <&rpmhpd SC7280_LMX>;
+                       power-domain-names = "lcx", "lmx";
+
+                       memory-region = <&adsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&adsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+
+                               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x1803 0x0>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1804 0x0>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1805 0x0>;
+                                       };
+                               };
+                       };
+               };
+
                remoteproc_wpss: remoteproc@8a00000 {
-                       compatible = "qcom,sc7280-wpss-pil";
+                       compatible = "qcom,sc7280-wpss-pas";
                        reg = <0 0x08a00000 0 0x10000>;
 
                        interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>,
                        interrupt-names = "wdog", "fatal", "ready", "handover",
                                          "stop-ack", "shutdown-ack";
 
-                       clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
-                                <&gcc GCC_WPSS_AHB_CLK>,
-                                <&gcc GCC_WPSS_RSCP_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "ahb_bdg", "ahb",
-                                     "rscp", "xo";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
 
                        power-domains = <&rpmhpd SC7280_CX>,
                                        <&rpmhpd SC7280_MX>;
                        qcom,smem-states = <&wpss_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
-                       resets = <&aoss_reset AOSS_CC_WCSS_RESTART>,
-                                <&pdc_reset PDC_WPSS_SYNC_RESET>;
-                       reset-names = "restart", "pdc_sync";
-
-                       qcom,halt-regs = <&tcsr_1 0x17000>;
 
                        status = "disabled";
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               remoteproc_cdsp: remoteproc@a300000 {
+                       compatible = "qcom,sc7280-cdsp-pas";
+                       reg = <0 0x0a300000 0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC7280_CX>,
+                                       <&rpmhpd SC7280_MX>;
+                       power-domain-names = "cx", "mx";
+
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC 0 &mc_virt SLAVE_EBI1 0>;
+
+                       memory-region = <&cdsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&cdsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x11a1 0x0420>,
+                                                        <&apps_smmu 0x1181 0x0420>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x11a2 0x0420>,
+                                                        <&apps_smmu 0x1182 0x0420>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x11a3 0x0420>,
+                                                        <&apps_smmu 0x1183 0x0420>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x11a4 0x0420>,
+                                                        <&apps_smmu 0x1184 0x0420>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x11a5 0x0420>,
+                                                        <&apps_smmu 0x1185 0x0420>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x11a6 0x0420>,
+                                                        <&apps_smmu 0x1186 0x0420>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x11a7 0x0420>,
+                                                        <&apps_smmu 0x1187 0x0420>;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x11a8 0x0420>,
+                                                        <&apps_smmu 0x1188 0x0420>;
+                                       };
+
+                                       /* note: secure cb9 in downstream */
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&apps_smmu 0x11ab 0x0420>,
+                                                        <&apps_smmu 0x118b 0x0420>;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+                                               iommus = <&apps_smmu 0x11ac 0x0420>,
+                                                        <&apps_smmu 0x118c 0x0420>;
+                                       };
+
+                                       compute-cb@13 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+                                               iommus = <&apps_smmu 0x11ad 0x0420>,
+                                                        <&apps_smmu 0x118d 0x0420>;
+                                       };
+
+                                       compute-cb@14 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <14>;
+                                               iommus = <&apps_smmu 0x11ae 0x0420>,
+                                                        <&apps_smmu 0x118e 0x0420>;
+                                       };
+                               };
+                       };
+               };
+
                usb_1: usb@a6f8800 {
                        compatible = "qcom,sc7280-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 14 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 17 IRQ_TYPE_EDGE_BOTH>;
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
                        #power-domain-cells = <1>;
                };
 
+               cci0: cci@ac4a000 {
+                       compatible = "qcom,sc7280-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac4a000 0 0x1000>;
+                       interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+                       pinctrl-0 = <&cci0_default &cci1_default>;
+                       pinctrl-1 = <&cci0_sleep &cci1_sleep>;
+                       pinctrl-names = "default", "sleep";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+
+                       cci0_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci0_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci1: cci@ac4b000 {
+                       compatible = "qcom,sc7280-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac4b000 0 0x1000>;
+                       interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+                       pinctrl-0 = <&cci2_default &cci3_default>;
+                       pinctrl-1 = <&cci2_sleep &cci3_sleep>;
+                       pinctrl-names = "default", "sleep";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+
+                       cci1_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci1_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                camcc: clock-controller@ad00000 {
                        compatible = "qcom,sc7280-camcc";
                        reg = <0 0x0ad00000 0 0x10000>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
 
-                       interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>;
-                       interconnect-names = "mdp0-mem";
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &cnoc2 SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "mdp0-mem",
+                                            "cpu-cfg";
 
                        iommus = <&apps_smmu 0x900 0x402>;
 
                        gpio-ranges = <&tlmm 0 0 175>;
                        wakeup-parent = <&pdc>;
 
+                       cci0_default: cci0-default-state {
+                               pins = "gpio69", "gpio70";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci0_sleep: cci0-sleep-state {
+                               pins = "gpio69", "gpio70";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci1_default: cci1-default-state {
+                               pins = "gpio71", "gpio72";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci1_sleep: cci1-sleep-state {
+                               pins = "gpio71", "gpio72";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci2_default: cci2-default-state {
+                               pins = "gpio73", "gpio74";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci2_sleep: cci2-sleep-state {
+                               pins = "gpio73", "gpio74";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cci3_default: cci3-default-state {
+                               pins = "gpio75", "gpio76";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       cci3_sleep: cci3-sleep-state {
+                               pins = "gpio75", "gpio76";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
                        dp_hot_plug_det: dp-hot-plug-det-state {
                                pins = "gpio47";
                                function = "dp_hot";
                        compatible = "qcom,apss-wdt-sc7280", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                        status = "reserved"; /* Owned by Gunyah hyp */
                };
 
index 3ea07d094b607f40b1a0a5a80d776f1c097ed5a8..0c22f3efec20c8fd2430151c783834d2f89b5823 100644 (file)
 };
 
 &pcie3 {
-       perst-gpio = <&tlmm 178 GPIO_ACTIVE_LOW>;
-       wake-gpio = <&tlmm 180 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 180 GPIO_ACTIVE_HIGH>;
        pinctrl-0 = <&pcie3_default_state>;
        pinctrl-names = "default";
 
index fd2fab4895b39037a38ea7b1a976670522eec6ef..bfee60c93ccce8f1dd0fb0c7a7e09eed9a1ce54d 100644 (file)
@@ -43,7 +43,7 @@
                pinctrl-0 = <&hall_int_active_state>;
 
                lid-switch {
-                       gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+                       gpios = <&tlmm 121 GPIO_ACTIVE_LOW>;
                        linux,input-type = <EV_SW>;
                        linux,code = <SW_LID>;
                        wakeup-source;
                        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_l12e: ldo12 {
 };
 
 &pcie1 {
-       perst-gpio = <&tlmm 175 GPIO_ACTIVE_LOW>;
-       wake-gpio = <&tlmm 177 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 177 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&pcie2_default_state>;
 
index a34f438ef2d9a4160b9f6bc2eb4fbb9f7ca3ef8e..0430d99091e30ac48a9feef53856ad7fdb0b6ff9 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/qcom,gcc-sc8180x.h>
 #include <dt-bindings/clock/qcom,gpucc-sm8150.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sc8180x.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sc8180x";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                        assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
                        assigned-clock-rates = <19200000>;
 
-                       iommus = <&apps_smmu 0x1d80 0x7f>;
                        iommu-map = <0x0   &apps_smmu 0x1d80 0x1>,
                                    <0x100 &apps_smmu 0x1d81 0x1>;
 
 
                        phys = <&pcie0_phy>;
                        phy-names = "pciephy";
+                       dma-coherent;
 
                        status = "disabled";
                };
                        clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
                                 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
                                 <&gcc GCC_PCIE_0_CLKREF_CLK>,
-                                <&gcc GCC_PCIE1_PHY_REFGEN_CLK>,
+                                <&gcc GCC_PCIE0_PHY_REFGEN_CLK>,
                                 <&gcc GCC_PCIE_0_PIPE_CLK>;
                        clock-names = "aux",
                                      "cfg_ahb",
                        status = "disabled";
                };
 
-               pcie3: pci@1c08000 {
+               pcie3: pcie@1c08000 {
                        compatible = "qcom,pcie-sc8180x";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                        assigned-clocks = <&gcc GCC_PCIE_3_AUX_CLK>;
                        assigned-clock-rates = <19200000>;
 
-                       iommus = <&apps_smmu 0x1e00 0x7f>;
                        iommu-map = <0x0   &apps_smmu 0x1e00 0x1>,
                                    <0x100 &apps_smmu 0x1e01 0x1>;
 
 
                        phys = <&pcie3_phy>;
                        phy-names = "pciephy";
+                       dma-coherent;
 
                        status = "disabled";
                };
                        clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
                                 <&gcc GCC_PCIE_3_CFG_AHB_CLK>,
                                 <&gcc GCC_PCIE_3_CLKREF_CLK>,
-                                <&gcc GCC_PCIE2_PHY_REFGEN_CLK>,
+                                <&gcc GCC_PCIE3_PHY_REFGEN_CLK>,
                                 <&gcc GCC_PCIE_3_PIPE_CLK>;
                        clock-names = "aux",
                                      "cfg_ahb",
                        status = "disabled";
                };
 
-               pcie1: pci@1c10000 {
+               pcie1: pcie@1c10000 {
                        compatible = "qcom,pcie-sc8180x";
                        reg = <0 0x01c10000 0 0x3000>,
                              <0 0x68000000 0 0xf1d>,
                        assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
                        assigned-clock-rates = <19200000>;
 
-                       iommus = <&apps_smmu 0x1c80 0x7f>;
                        iommu-map = <0x0   &apps_smmu 0x1c80 0x1>,
                                    <0x100 &apps_smmu 0x1c81 0x1>;
 
 
                        phys = <&pcie1_phy>;
                        phy-names = "pciephy";
+                       dma-coherent;
 
                        status = "disabled";
                };
                        status = "disabled";
                };
 
-               pcie2: pci@1c18000 {
+               pcie2: pcie@1c18000 {
                        compatible = "qcom,pcie-sc8180x";
                        reg = <0 0x01c18000 0 0x3000>,
                              <0 0x70000000 0 0xf1d>,
                        assigned-clocks = <&gcc GCC_PCIE_2_AUX_CLK>;
                        assigned-clock-rates = <19200000>;
 
-                       iommus = <&apps_smmu 0x1d00 0x7f>;
                        iommu-map = <0x0   &apps_smmu 0x1d00 0x1>,
                                    <0x100 &apps_smmu 0x1d01 0x1>;
 
 
                        phys = <&pcie2_phy>;
                        phy-names = "pciephy";
+                       dma-coherent;
 
                        status = "disabled";
                };
                                      "refgen",
                                      "pipe";
                        #clock-cells = <0>;
-                       clock-output-names = "pcie_3_pipe_clk";
+                       clock-output-names = "pcie_2_pipe_clk";
 
                        #phy-cells = <0>;
 
                                        <0 0>,
                                        <0 0>;
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
+                       interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_UFS_MEM_0_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "ufs-ddr", "cpu-ufs";
+
                        status = "disabled";
                };
 
                usb_prim: usb@a6f8800 {
                        compatible = "qcom,sc8180x-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq",
                                          "ss_phy_irq",
                                          "dm_hs_phy_irq",
                                      "xo";
                        resets = <&gcc GCC_USB30_SEC_BCR>;
                        power-domains = <&gcc USB30_SEC_GDSC>;
-                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
                                         <&gcc GCC_DISP_HF_AXI_CLK>,
                                         <&dispcc DISP_CC_MDSS_MDP_CLK>,
-                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ROT_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>;
                                clock-names = "iface",
                                              "bus",
                                              "core",
-                                             "vsync";
+                                             "vsync",
+                                             "rot",
+                                             "lut";
 
                                assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
                                                  <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
                                phys = <&edp_phy>;
                                phy-names = "dp";
 
-                               #sound-dai-cells = <0>;
-
                                operating-points-v2 = <&edp_opp_table>;
                                power-domains = <&rpmhpd SC8180X_MMCX>;
 
                        reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
                              <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0 0x20000>;
                };
 
                apss_shared: mailbox@17c00000 {
-                       compatible = "qcom,sc8180x-apss-shared";
+                       compatible = "qcom,sc8180x-apss-shared", "qcom,sdm845-apss-shared";
                        reg = <0x0 0x17c00000 0x0 0x1000>;
                        #mbox-cells = <1>;
                };
index e4861c61a65bdc0bd2dbf3f903cb19af3f1df7a6..41215567b3aed7d4211a8a4c5ab94042d205b422 100644 (file)
 };
 
 &mdss0_dp3_phy {
+       compatible = "qcom,sc8280xp-edp-phy";
+
        vdda-phy-supply = <&vreg_l6b>;
        vdda-pll-supply = <&vreg_l3b>;
 
 };
 
 &pcie4 {
+       max-link-speed = <2>;
+
        perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
        wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
 
index 38edaf51aa34575ce4d6f40fd6730d0a497f4ac4..eb657e544961d7c2ac60e0f505767c1427893a14 100644 (file)
@@ -82,6 +82,9 @@
        leds {
                compatible = "gpio-leds";
 
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam_indicator_en>;
+
                led-camera-indicator {
                        label = "white:camera-indicator";
                        function = LED_FUNCTION_INDICATOR;
 
 &mdss0_dp3 {
        compatible = "qcom,sc8280xp-edp";
+       /delete-property/ #sound-dai-cells;
 
        data-lanes = <0 1 2 3>;
 
 };
 
 &mdss0_dp3_phy {
+       compatible = "qcom,sc8280xp-edp-phy";
        vdda-phy-supply = <&vreg_l6b>;
        vdda-pll-supply = <&vreg_l3b>;
 
 };
 
 &pcie4 {
+       max-link-speed = <2>;
+
        perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
        wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
 
                };
        };
 
+       cam_indicator_en: cam-indicator-en-state {
+               pins = "gpio28";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        edp_reg_en: edp-reg-en-state {
                pins = "gpio25";
                function = "gpio";
index cad59af7ccef1b599d958f0a0f94fa800895d0bb..febf28356ff8b0a4a52de16ceda2ab1bdb1eca4d 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
 #include <dt-bindings/clock/qcom,gpucc-sc8280xp.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sc8280xp-camcc.h>
 #include <dt-bindings/clock/qcom,sc8280xp-lpasscc.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sc8280xp.h>
                        status = "disabled";
                };
 
-               swr1: soundwire-controller@3210000 {
+               swr1: soundwire@3210000 {
                        compatible = "qcom,soundwire-v1.6.0";
                        reg = <0 0x03210000 0 0x2000>;
                        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               swr0: soundwire-controller@3250000 {
+               swr0: soundwire@3250000 {
                        reg = <0 0x03250000 0 0x2000>;
                        compatible = "qcom,soundwire-v1.6.0";
                        interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
                        #reset-cells = <1>;
                };
 
-               swr2: soundwire-controller@3330000 {
+               swr2: soundwire@3330000 {
                        compatible = "qcom,soundwire-v1.6.0";
                        reg = <0 0x03330000 0 0x2000>;
                        interrupts = <GIC_SPI 959 IRQ_TYPE_LEVEL_HIGH>,
                        };
                };
 
+               camcc: clock-controller@ad00000 {
+                       compatible = "qcom,sc8280xp-camcc";
+                       reg = <0 0x0ad00000 0 0x20000>;
+                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>;
+                       power-domains = <&rpmhpd SC8280XP_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                mdss0: display-subsystem@ae00000 {
                        compatible = "qcom,sc8280xp-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
                sram@c3f0000 {
                        compatible = "qcom,rpmh-stats";
                        reg = <0 0x0c3f0000 0 0x400>;
+                       qcom,qmp = <&aoss_qmp>;
                };
 
                spmi_bus: spmi@c440000 {
                        compatible = "qcom,apss-wdt-sc8280xp", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                timer@17c20000 {
index 775700f78e0feb8998b36aaf3e0a28ddc739e0df..513fe5e76b688ed0ace12b3804169fdb7e2c8841 100644 (file)
                        compatible = "qcom,sdm660-bimc";
                        reg = <0x01008000 0x78000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
-                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
                };
 
                restart@10ac000 {
                        compatible = "qcom,sdm660-cnoc";
                        reg = <0x01500000 0x10000>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
-                                <&rpmcc RPM_SMD_CNOC_A_CLK>;
                };
 
                snoc: interconnect@1626000 {
                        compatible = "qcom,sdm660-snoc";
                        reg = <0x01626000 0x7090>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
-                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
                };
 
                anoc2_smmu: iommu@16c0000 {
                        compatible = "qcom,sdm630-smmu-v2", "qcom,smmu-v2";
                        reg = <0x016c0000 0x40000>;
-
-                       assigned-clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
-                       assigned-clock-rates = <1000>;
-                       clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
-                       clock-names = "bus";
                        #global-interrupts = <2>;
                        #iommu-cells = <1>;
 
                        compatible = "qcom,sdm660-a2noc";
                        reg = <0x01704000 0xc100>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus",
-                                     "bus_a",
-                                     "ipa",
+                       clock-names = "ipa",
                                      "ufs_axi",
                                      "aggre2_ufs_axi",
                                      "aggre2_usb3_axi",
                                      "cfg_noc_usb2_axi";
-                       clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
-                                <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
-                                <&rpmcc RPM_SMD_IPA_CLK>,
+                       clocks = <&rpmcc RPM_SMD_IPA_CLK>,
                                 <&gcc GCC_UFS_AXI_CLK>,
                                 <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
                                 <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
                        compatible = "qcom,sdm660-mnoc";
                        reg = <0x01745000 0xa010>;
                        #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a", "iface";
-                       clocks = <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
-                                <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK_A>,
-                                <&mmcc AHB_CLK_SRC>;
+                       clock-names = "iface";
+                       clocks = <&mmcc AHB_CLK_SRC>;
                };
 
                tsens: thermal-sensor@10ae000 {
                        clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
                                 <&gcc GCC_BIMC_GFX_CLK>,
                                 <&gcc GCC_GPU_BIMC_GFX_CLK>;
-                       clock-names = "iface", "mem", "mem_iface";
+                       clock-names = "iface",
+                                     "mem",
+                                     "mem_iface";
                        #global-interrupts = <2>;
                        #iommu-cells = <1>;
 
                                 <&gcc GCC_USB30_MASTER_CLK>,
                                 <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
                                 <&gcc GCC_USB30_SLEEP_CLK>,
-                                <&gcc GCC_USB30_MOCK_UTMI_CLK>,
-                                <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
+                                <&gcc GCC_USB30_MOCK_UTMI_CLK>;
                        clock-names = "cfg_noc",
                                      "core",
                                      "iface",
                                      "sleep",
-                                     "mock_utmi",
-                                     "bus";
+                                     "mock_utmi";
 
                        assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
-                                         <&gcc GCC_USB30_MASTER_CLK>,
-                                         <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
-                       assigned-clock-rates = <19200000>, <120000000>,
-                                              <19200000>;
+                                         <&gcc GCC_USB30_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <120000000>;
 
                        interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
 
                        clocks = <&mmcc MNOC_AHB_CLK>,
                                 <&mmcc BIMC_SMMU_AHB_CLK>,
-                                <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
                                 <&mmcc BIMC_SMMU_AXI_CLK>;
                        clock-names = "iface-mm", "iface-smmu",
-                                     "bus-mm", "bus-smmu";
+                                     "bus-smmu";
                        #global-interrupts = <2>;
                        #iommu-cells = <1>;
 
                        compatible = "qcom,sdm660-gnoc";
                        reg = <0x17900000 0xe000>;
                        #interconnect-cells = <1>;
-                       /*
-                        * This one apparently features no clocks,
-                        * so let's not mess with the driver needlessly
-                        */
-                       clock-names = "bus", "bus_a";
-                       clocks = <&xo_board>, <&xo_board>;
                };
 
                apcs_glb: mailbox@17911000 {
index 301eca9a4f313c7dbf24ce942adabbe6c0607ec3..057579ae30138d343477e8cc4db5ccca46d3b128 100644 (file)
        };
 };
 
+&lpass {
+       status = "okay";
+};
+
 &pm8953_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
 &usb3_dwc3 {
        dr_mode = "peripheral";
 };
+
+&wcnss {
+       status = "okay";
+
+       vddpx-supply = <&pm8953_l5>;
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3680";
+
+       vddxo-supply = <&pm8953_l7>;
+       vddrfa-supply = <&pm8953_l19>;
+       vddpa-supply = <&pm8953_l9>;
+       vdddig-supply = <&pm8953_l5>;
+};
index ba2043d67370adb60fc9b4ab2e2c3d0c04565650..4d7b77a231598e8a7f593d6fece320f17c9ef76c 100644 (file)
@@ -6,6 +6,7 @@
  * Copyright (c) 2022, Richard Acayan. All rights reserved.
  */
 
+#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/dma/qcom-gpi.h>
                };
        };
 
+       dsi_opp_table: opp-table-dsi {
+               compatible = "operating-points-v2";
+
+               opp-19200000 {
+                       opp-hz = /bits/ 64 <19200000>;
+                       required-opps = <&rpmhpd_opp_min_svs>;
+               };
+
+               opp-180000000 {
+                       opp-hz = /bits/ 64 <180000000>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+               };
+
+               opp-275000000 {
+                       opp-hz = /bits/ 64 <275000000>;
+                       required-opps = <&rpmhpd_opp_svs>;
+               };
+
+               opp-358000000 {
+                       opp-hz = /bits/ 64 <358000000>;
+                       required-opps = <&rpmhpd_opp_svs_l1>;
+               };
+       };
+
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <150000000>;
 
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                        #interrupt-cells = <4>;
                };
 
+               mdss: display-subsystem@ae00000 {
+                       compatible = "qcom,sdm670-mdss";
+                       reg = <0 0x0ae00000 0 0x1000>;
+                       reg-names = "mdss";
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
+                       clock-names = "iface", "core";
+
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       interconnects = <&mmss_noc MASTER_MDP_PORT0 0 &mem_noc SLAVE_EBI_CH0 0>,
+                                       <&mmss_noc MASTER_MDP_PORT1 0 &mem_noc SLAVE_EBI_CH0 0>;
+                       interconnect-names = "mdp0-mem", "mdp1-mem";
+
+                       iommus = <&apps_smmu 0x880 0x8>,
+                                <&apps_smmu 0xc80 0x8>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: display-controller@ae01000 {
+                               compatible = "qcom,sdm670-dpu";
+                               reg = <0 0x0ae01000 0 0x8f000>,
+                                     <0 0x0aeb0000 0 0x2008>;
+                               reg-names = "mdp", "vbif";
+
+                               clocks = <&gcc GCC_DISP_AXI_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AXI_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               assigned-clock-rates = <19200000>;
+                               operating-points-v2 = <&mdp_opp_table>;
+                               power-domains = <&rpmhpd SDM670_CX>;
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               dpu_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi1_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-19200000 {
+                                               opp-hz = /bits/ 64 <19200000>;
+                                               required-opps = <&rpmhpd_opp_min_svs>;
+                                       };
+
+                                       opp-171428571 {
+                                               opp-hz = /bits/ 64 <171428571>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-358000000 {
+                                               opp-hz = /bits/ 64 <358000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-430000000 {
+                                               opp-hz = /bits/ 64 <430000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0: dsi@ae94000 {
+                               compatible = "qcom,sdm670-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae94000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
+
+                               operating-points-v2 = <&dsi_opp_table>;
+                               power-domains = <&rpmhpd SDM670_CX>;
+
+                               phys = <&mdss_dsi0_phy>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0_phy: phy@ae94400 {
+                               compatible = "qcom,dsi-phy-10nm";
+                               reg = <0 0x0ae94400 0 0x200>,
+                                     <0 0x0ae94600 0 0x280>,
+                                     <0 0x0ae94a00 0 0x1e0>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+
+                       mdss_dsi1: dsi@ae96000 {
+                               compatible = "qcom,sdm670-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae96000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <5>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>;
+
+                               operating-points-v2 = <&dsi_opp_table>;
+                               power-domains = <&rpmhpd SDM670_CX>;
+
+                               phys = <&mdss_dsi1_phy>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi1_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi1_phy: phy@ae96400 {
+                               compatible = "qcom,dsi-phy-10nm";
+                               reg = <0 0x0ae96400 0 0x200>,
+                                     <0 0x0ae96600 0 0x280>,
+                                     <0 0x0ae96a00 0 0x10e>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,sdm845-dispcc";
+                       reg = <0 0x0af00000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+                                <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi1_phy 0>,
+                                <&mdss_dsi1_phy 1>,
+                                <0>,
+                                <0>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_disp_gpll0_clk_src",
+                                     "gcc_disp_gpll0_div_clk_src",
+                                     "dsi0_phy_pll_out_byteclk",
+                                     "dsi0_phy_pll_out_dsiclk",
+                                     "dsi1_phy_pll_out_byteclk",
+                                     "dsi1_phy_pll_out_dsiclk",
+                                     "dp_link_clk_divsel_ten",
+                                     "dp_vco_divided_clk_src_mux";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                apps_smmu: iommu@15000000 {
                        compatible = "qcom,sdm670-smmu-500", "qcom,smmu-500", "arm,mmu-500";
                        reg = <0 0x15000000 0 0x80000>;
                };
 
                cpufreq_hw: cpufreq@17d43000 {
-                       compatible = "qcom,cpufreq-hw";
+                       compatible = "qcom,sdm670-cpufreq-hw", "qcom,cpufreq-hw";
                        reg = <0 0x17d43000 0 0x1400>, <0 0x17d45800 0 0x1400>;
                        reg-names = "freq-domain0", "freq-domain1";
 
index c7eba6c491be2bf60af4876fe29f63f6132d4f0c..ab6220456513cf8ec86a836d6ac5a163d205c47a 100644 (file)
@@ -67,8 +67,8 @@
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pm8998_gpios 13 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "panic-indicator";
                        default-state = "off";
+                       panic-indicator;
                };
 
                led-1 {
        vdd-rx-supply = <&vreg_s4a_1p8>;
        vdd-io-supply = <&vreg_s4a_1p8>;
 
-       swm: swm@c85 {
+       swm: soundwire@c85 {
                left_spkr: speaker@0,1 {
                        compatible = "sdw10217201000";
                        reg = <0 1>;
index b523b5fff70228061ca935cc0e90b5a82c9c595a..e821103d49c0ad38d17f69c1be1bd624e1c82918 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/sound/qcom,q6asm.h>
        status = "okay";
 };
 
+&pmi8998_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1500000>;
+               flash-max-timeout-us = <1280000>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <2>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1500000>;
+               flash-max-timeout-us = <1280000>;
+       };
+};
+
 &q6afedai {
        qi2s@22 {
                reg = <22>;
index c15d488606468b874bd88c600060da8c870edec0..6172cd1539e6bbd262b55b6673dc166ba1ebc4a7 100644 (file)
@@ -54,7 +54,7 @@
                                reg = <0x42 0x2>;
                        };
 
-                       swm: swm@c85 {
+                       swm: soundwire@c85 {
                                compatible = "qcom,soundwire-v1.3.0";
                                reg = <0xc85 0x40>;
                                interrupts-extended = <&wcd9340 20>;
index 93b1582e807dd808357120f3bca93cf325b7c29d..617b17b2d7d9dfb686445e02cfc8f97de5b6f7a6 100644 (file)
        status = "okay";
 };
 
+&pmi8998_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1500000>;
+               flash-max-timeout-us = <1280000>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <2>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1500000>;
+               flash-max-timeout-us = <1280000>;
+       };
+};
+
 &pm8998_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
index bf5e6eb9d3138ff5764a1bc69b1fdefa018ca890..c2244824355a20e6a3a8b8d35b63526e3f1d4ace 100644 (file)
                        };
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sdm845";
                        reg = <0 0x01c00000 0 0x2000>,
                              <0 0x60000000 0 0xf1d>,
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sdm845";
                        reg = <0 0x01c08000 0 0x2000>,
                              <0 0x40000000 0 0xf1d>,
                              <0 0x01d90000 0 0x8000>;
                        reg-names = "std", "ice";
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        power-domains = <&gcc UFS_PHY_GDSC>;
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
                                <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
-                       freq-table-hz =
-                               <50000000 200000000>,
-                               <0 0>,
-                               <0 0>,
-                               <37500000 150000000>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>,
-                               <75000000 300000000>;
+
+                       operating-points-v2 = <&ufs_opp_table>;
 
                        interconnects = <&aggre1_noc MASTER_UFS_MEM 0 &mem_noc SLAVE_EBI1 0>,
                                        <&gladiator_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_UFS_MEM_CFG 0>;
                        interconnect-names = "ufs-ddr", "cpu-ufs";
 
                        status = "disabled";
+
+                       ufs_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-50000000 {
+                                       opp-hz = /bits/ 64 <50000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <37500000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <75000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <150000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <300000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
                };
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sdm845-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x18c>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
+
                        clock-names = "ref",
                                      "ref_aux";
                        clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x108>,
-                                     <0 0x01d87600 0 0x1e0>,
-                                     <0 0x01d87c00 0 0x1dc>,
-                                     <0 0x01d87800 0 0x108>,
-                                     <0 0x01d87a00 0 0x1e0>;
-                               #phy-cells = <0>;
-                       };
+                       #phy-cells = <0>;
+                       status = "disabled";
                };
 
                cryptobam: dma-controller@1dc4000 {
                        };
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
 
-                               port@1 {
-                                       reg = <1>;
+                               port {
                                        etf_in: endpoint {
                                                remote-endpoint =
                                                  <&merge_funnel_out>;
 
                usb_2_qmpphy: phy@88eb000 {
                        compatible = "qcom,sdm845-qmp-usb3-uni-phy";
-                       reg = <0 0x088eb000 0 0x18c>;
-                       status = "disabled";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x088eb000 0 0x1000>;
 
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
                                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
                                 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
-                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
-                       clock-names = "aux", "cfg_ahb", "ref", "com_aux";
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
-                       resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
-                                <&gcc GCC_USB3_PHY_SEC_BCR>;
-                       reset-names = "phy", "common";
+                       resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb_2_ssphy: phy@88eb200 {
-                               reg = <0 0x088eb200 0 0x128>,
-                                     <0 0x088eb400 0 0x1fc>,
-                                     <0 0x088eb800 0 0x218>,
-                                     <0 0x088eb600 0 0x70>;
-                               #clock-cells = <0>;
-                               #phy-cells = <0>;
-                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
+                       status = "disabled";
                };
 
                usb_1: usb@a6f8800 {
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <150000000>;
 
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc_intc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                          <&gcc GCC_USB30_SEC_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <150000000>;
 
-                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc_intc 7 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                iommus = <&apps_smmu 0x760 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_2_hsphy>, <&usb_2_ssphy>;
+                               phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                        compatible = "qcom,apss-wdt-sdm845", "qcom,kpss-wdt";
                        reg = <0 0x17980000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                apss_shared: mailbox@17990000 {
index 92a812b5f4238e7ebb1a2e5d0e7fc93a054bcc94..47dc42f6e936cd9999a5e1f15890ba25da945e79 100644 (file)
                hid-descr-addr = <0x20>;
 
                interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
+
+               wakeup-source;
        };
 };
 
 
                pinctrl-names = "default";
                pinctrl-0 = <&i2c5_hid_active>;
+
+               wakeup-source;
        };
 };
 
 
                pinctrl-names = "default";
                pinctrl-0 = <&i2c11_hid_active>;
+
+               wakeup-source;
        };
 };
 
        qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
        qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
 
-       swm: swm@c85 {
+       swm: soundwire@c85 {
                left_spkr: speaker@0,3 {
                        compatible = "sdw10217211000";
                        reg = <0 3>;
index 543837316001b3adb6fc2a53f4ea0438bb26ecba..26217836c2707ba2f7b0030c9801d7de3a797315 100644 (file)
        qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
        qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
 
-       swm: swm@c85 {
+       swm: soundwire@c85 {
                left_spkr: speaker@0,3 {
                        compatible = "sdw10217211000";
                        reg = <0 3>;
index a14e0650c4a8aa8515094e433f794b2faada77f2..f76e72fb2072ffbe51747352e702600b95cadb3c 100644 (file)
        stdout-path = "serial0:115200n8";
 };
 
+&pm7550ba_eusb2_repeater {
+       vdd18-supply = <&vreg_l5b_1p776>;
+       vdd3-supply = <&vreg_l10b_3p08>;
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 &uart1 {
        status = "okay";
 };
+
+&usb {
+       status = "okay";
+};
+
+&usb_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_hsphy {
+       vdd-supply = <&vreg_l4b_0p88>;
+       vdda12-supply = <&vreg_l1b_1p2>;
+
+       phys = <&pm7550ba_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_qmpphy {
+       vdda-phy-supply = <&vreg_l4b_0p88>;
+       vdda-pll-supply = <&vreg_l1b_1p2>;
+
+       status = "okay";
+};
index e180aa4023eca4a4a1a790c073ecdeba764079bd..7dbdf8ca6de685bc7c0605619022eff149cc8c7c 100644 (file)
@@ -8,6 +8,8 @@
 
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sdx75-gcc.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
+#include <dt-bindings/interconnect/qcom,sdx75.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom,rpmhpd.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
                };
        };
 
+       clk_virt: interconnect-0 {
+               compatible = "qcom,sdx75-clk-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+               clocks = <&rpmhcc RPMH_QPIC_CLK>;
+       };
+
+       mc_virt: interconnect-1 {
+               compatible = "qcom,sdx75-mc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
        memory@80000000 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x0>;
                        clock-names = "m-ahb",
                                      "s-ahb";
                        iommus = <&apps_smmu 0xe3 0x0>;
+                       interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                        &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "qup-core";
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                                reg = <0x0 0x00984000 0x0 0x4000>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
                                clock-names = "se";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-0 = <&qupv3_se1_2uart_active>;
                                pinctrl-1 = <&qupv3_se1_2uart_sleep>;
                        };
                };
 
+               usb_hsphy: phy@ff4000 {
+                       compatible = "qcom,sdx75-snps-eusb2-phy", "qcom,sm8550-snps-eusb2-phy";
+                       reg = <0x0 0x00ff4000 0x0 0x154>;
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_BCR>;
+
+                       status = "disabled";
+               };
+
+               usb_qmpphy: phy@ff6000 {
+                       compatible = "qcom,sdx75-qmp-usb3-uni-phy";
+                       reg = <0x0 0x00ff6000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
+                                <&gcc GCC_USB2_CLKREF_EN>,
+                                <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
+                                <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+
+                       power-domains = <&gcc GCC_USB3_PHY_GDSC>;
+
+                       resets = <&gcc GCC_USB3_PHY_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               system_noc: interconnect@1640000 {
+                       compatible = "qcom,sdx75-system-noc";
+                       reg = <0x0 0x01640000 0x0 0x4b400>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               pcie_anoc: interconnect@16c0000 {
+                       compatible = "qcom,sdx75-pcie-anoc";
+                       reg = <0x0 0x016c0000 0x0 0x14200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x40000>;
                        #hwlock-cells = <1>;
                };
 
+               usb: usb@a6f8800 {
+                       compatible = "qcom,sdx75-dwc3", "qcom,dwc3";
+                       reg = <0x0 0x0a6f8800 0x0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_USB30_SLV_AHB_CLK>,
+                                <&gcc GCC_USB30_MASTER_CLK>,
+                                <&gcc GCC_USB30_MSTR_AXI_CLK>,
+                                <&gcc GCC_USB30_SLEEP_CLK>,
+                                <&gcc GCC_USB30_MOCK_UTMI_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "sleep",
+                                     "mock_utmi";
+
+                       assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 10 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "hs_phy_irq",
+                                         "ss_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "dp_hs_phy_irq";
+
+                       power-domains = <&gcc GCC_USB30_GDSC>;
+
+                       resets = <&gcc GCC_USB30_BCR>;
+
+                       interconnects = <&system_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &system_noc SLAVE_USB3 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "usb-ddr",
+                                            "apps-usb";
+
+                       status = "disabled";
+
+                       usb_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x0 0x0a600000 0x0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x80 0x0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_hsphy>,
+                                      <&usb_qmpphy>;
+                               phy-names = "usb2-phy",
+                                           "usb3-phy";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sdx75-pdc", "qcom,pdc";
                        reg = <0x0 0xb220000 0x0 0x30000>,
                        #freq-domain-cells = <1>;
                        #clock-cells = <1>;
                };
+
+               dc_noc: interconnect@190e0000 {
+                       compatible = "qcom,sdx75-dc-noc";
+                       reg = <0x0 0x190e0000 0x0 0x8200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               gem_noc: interconnect@19100000 {
+                       compatible = "qcom,sdx75-gem-noc";
+                       reg = <0x0 0x19100000 0x0 0x34080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
        };
 
        timer {
index 00a1c81ca3977ea176e27be08fc65fa31f6aaa76..866e937835902018529a43cf8baeb8950d032beb 100644 (file)
        model = "Qualcomm Technologies, Inc. SM4450 QRD";
        compatible = "qcom,sm4450-qrd", "qcom,sm4450";
 
-       aliases { };
+       aliases {
+               serial0 = &uart7;
+       };
 
        chosen {
-               bootargs = "console=hvc0";
+               stdout-path = "serial0:115200n8";
        };
 };
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>; /* NFC eSE SPI */
+};
+
+&uart7 {
+       status = "okay";
+};
index c4e5b33f5169c890b9222741c9fdac6c841a9dd9..3e7ae3bebbe081d992ebffec7edb9f6fb113bd5f 100644 (file)
@@ -3,8 +3,11 @@
  * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm4450-gcc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
 
 / {
        interrupt-parent = <&intc>;
                };
        };
 
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               aop_cmd_db_mem: cmd-db@80860000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x80860000 0x0 0x20000>;
+                       no-map;
+               };
+       };
+
        soc: soc@0 {
                #address-cells = <2>;
                #size-cells = <2>;
                dma-ranges = <0 0 0 0 0x10 0>;
                compatible = "simple-bus";
 
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,sm4450-gcc";
+                       reg = <0x0 0x00100000 0x0 0x1f4200>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>;
+               };
+
+               qupv3_id_0: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x2000>;
+                       ranges;
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       clock-names = "m-ahb", "s-ahb";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       status = "disabled";
+
+                       uart7: serial@a88000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0x0 0x00a88000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x40000>;
                        interrupt-controller;
                };
 
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,sm4450-tlmm";
+                       reg = <0x0 0x0f100000 0x0 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 137>;
+                       wakeup-parent = <&pdc>;
+
+                       qup_uart7_rx: qup-uart7-rx-state {
+                               pins = "gpio23";
+                               function = "qup1_se2_l2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart7_tx: qup-uart7-tx-state {
+                               pins = "gpio22";
+                               function = "qup1_se2_l2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
                intc: interrupt-controller@17200000 {
                        compatible = "arm,gic-v3";
                        reg = <0x0 0x17200000 0x0 0x10000>,     /* GICD */
                                status = "disabled";
                        };
                };
+
+               apps_rsc: rsc@17a00000 {
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x17a00000 0x0 0x10000>,
+                             <0x0 0x17a10000 0x0 0x10000>,
+                             <0x0 0x17a20000 0x0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       label = "apps_rsc";
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS    2>, <SLEEP_TCS     3>,
+                                         <WAKE_TCS      3>, <CONTROL_TCS   0>;
+                       power-domains = <&CLUSTER_PD>;
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sm4450-rpmh-clk";
+                               #clock-cells = <1>;
+                               clocks = <&xo_board>;
+                               clock-names = "xo";
+                       };
+               };
+
        };
 
        timer {
index 839c6035124034c71c6c4926a8ffe9911ce387e7..f9849b8befbf24b54992d49af812eaa94288c3fb 100644 (file)
@@ -10,6 +10,8 @@
 #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,rpm-icc.h>
+#include <dt-bindings/interconnect/qcom,sm6115.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 
                scm: scm {
                        compatible = "qcom,scm-sm6115", "qcom,scm";
                        #reset-cells = <1>;
+                       interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
                };
        };
 
                reg = <0 0x80000000 0 0>;
        };
 
+       qup_opp_table: opp-table-qup {
+               compatible = "operating-points-v2";
+
+               opp-75000000 {
+                       opp-hz = /bits/ 64 <75000000>;
+                       required-opps = <&rpmpd_opp_low_svs>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       required-opps = <&rpmpd_opp_svs>;
+               };
+
+               opp-128000000 {
+                       opp-hz = /bits/ 64 <128000000>;
+                       required-opps = <&rpmpd_opp_nom>;
+               };
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
+               system_noc: interconnect@1880000 {
+                       compatible = "qcom,sm6115-snoc";
+                       reg = <0x0 0x01880000 0x0 0x5f080>;
+                       clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
+                                <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
+                                <&rpmcc RPM_SMD_IPA_CLK>;
+                       clock-names = "cpu_axi",
+                                     "ufs_axi",
+                                     "usb_axi",
+                                     "ipa";
+                       #interconnect-cells = <2>;
+
+                       clk_virt: interconnect-clk {
+                               compatible = "qcom,sm6115-clk-virt";
+                               #interconnect-cells = <2>;
+                       };
+
+                       mmrt_virt: interconnect-mmrt {
+                               compatible = "qcom,sm6115-mmrt-virt";
+                               #interconnect-cells = <2>;
+                       };
+
+                       mmnrt_virt: interconnect-mmnrt {
+                               compatible = "qcom,sm6115-mmnrt-virt";
+                               #interconnect-cells = <2>;
+                       };
+               };
+
+               config_noc: interconnect@1900000 {
+                       compatible = "qcom,sm6115-cnoc";
+                       reg = <0x0 0x01900000 0x0 0x6200>;
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>;
+                       clock-names = "usb_axi";
+                       #interconnect-cells = <2>;
+               };
+
                qfprom@1b40000 {
                        compatible = "qcom,sm6115-qfprom", "qcom,qfprom";
                        reg = <0x0 0x01b40000 0x0 0x7000>;
                        clock-names = "core";
                };
 
+               pmu@1b8e300 {
+                       compatible = "qcom,sm6115-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x01b8e300 0x0 0x600>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+                       interconnects = <&bimc MASTER_AMPSS_M0 RPM_ACTIVE_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ACTIVE_TAG>;
+
+                       cpu_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <(200 * 4 * 1000)>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <(300 * 4 * 1000)>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <(451 * 4 * 1000)>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <(547 * 4 * 1000)>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <(681 * 4 * 1000)>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <(768 * 4 * 1000)>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <(1017 * 4 * 1000)>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <(1353 * 4 * 1000)>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <(1555 * 4 * 1000)>;
+                               };
+
+                               opp-9 {
+                                       opp-peak-kBps = <(1804 * 4 * 1000)>;
+                               };
+                       };
+               };
+
                spmi_bus: spmi@1c40000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0 0x01c40000 0x0 0x1100>,
                        #thermal-sensor-cells = <1>;
                };
 
+               bimc: interconnect@4480000 {
+                       compatible = "qcom,sm6115-bimc";
+                       reg = <0x0 0x04480000 0x0 0x80000>;
+                       #interconnect-cells = <2>;
+               };
+
                rpm_msg_ram: sram@45f0000 {
                        compatible = "qcom,rpm-msg-ram";
                        reg = <0x0 0x045f0000 0x0 0x7000>;
                                 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
                        clock-names = "iface", "core", "xo", "ice";
 
+                       power-domains = <&rpmpd SM6115_VDDCX>;
+                       operating-points-v2 = <&sdhc1_opp_table>;
+                       interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+
                        bus-width = <8>;
                        status = "disabled";
+
+                       sdhc1_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <250000 133320>;
+                                       opp-avg-kBps = <102400 65000>;
+                               };
+
+                               opp-192000000 {
+                                       opp-hz = /bits/ 64 <192000000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <204800 200000>;
+                               };
+
+                               opp-384000000 {
+                                       opp-hz = /bits/ 64 <384000000>;
+                                       required-opps = <&rpmpd_opp_svs_plus>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <204800 200000>;
+                               };
+                       };
                };
 
                sdhc_2: mmc@4784000 {
                        operating-points-v2 = <&sdhc2_opp_table>;
                        iommus = <&apps_smmu 0x00a0 0x0>;
                        resets = <&gcc GCC_SDCC2_BCR>;
+                       interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
 
                        bus-width = <4>;
                        qcom,dll-config = <0x0007642c>;
                                opp-100000000 {
                                        opp-hz = /bits/ 64 <100000000>;
                                        required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <250000 133320>;
+                                       opp-avg-kBps = <261438 150000>;
                                };
 
                                opp-202000000 {
                                        opp-hz = /bits/ 64 <202000000>;
                                        required-opps = <&rpmpd_opp_nom>;
+                                       opp-peak-kBps = <800000 300000>;
+                                       opp-avg-kBps = <261438 300000>;
                                };
                        };
                };
                        reg = <0x0 0x04804000 0x0 0x3000>, <0x0 0x04810000 0x0 0x8000>;
                        reg-names = "std", "ice";
                        interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <1>;
                        #reset-cells = <1>;
 
                ufs_mem_phy: phy@4807000 {
                        compatible = "qcom,sm6115-qmp-ufs-phy";
-                       reg = <0x0 0x04807000 0x0 0x1c4>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0x0 0x04807000 0x0 0x1000>;
 
                        clocks = <&gcc GCC_UFS_CLKREF_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
                        clock-names = "ref", "ref_aux";
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@4807400 {
-                               reg = <0x0 0x04807400 0x0 0x098>,
-                                     <0x0 0x04807600 0x0 0x130>,
-                                     <0x0 0x04807c00 0x0 0x16c>;
-                               #phy-cells = <0>;
-                       };
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                gpi_dma0: dma-controller@4a00000 {
                                dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 0 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 0 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 1 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 1 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 2 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 2 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 3 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 3 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
 
+                       uart3: serial@4a8c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x04a8c000 0x0 0x4000>;
+                               interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               power-domains = <&rpmpd SM6115_VDDCX>;
+                               operating-points-v2 = <&qup_opp_table>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+                               status = "disabled";
+                       };
+
                        i2c4: i2c@4a90000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0x0 0x04a90000 0x0 0x4000>;
                                dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 4 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 4 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                clock-names = "se";
                                clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
                                interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
                                status = "disabled";
                        };
 
                                dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
                                       <&gpi_dma0 1 5 QCOM_GPI_I2C>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
                                       <&gpi_dma0 1 5 QCOM_GPI_SPI>;
                                dma-names = "tx", "rx";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+                                                &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+                                               <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                                &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
+                                               <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
+                                                &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
 
                        resets = <&gcc GCC_USB30_PRIM_BCR>;
                        power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
+                        /* TODO: USB<->IPA path */
+                       interconnects = <&system_noc MASTER_USB3 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>;
+                       interconnect-names = "usb-ddr",
+                                            "apps-usb";
+
                        qcom,select-utmi-as-pipe-clk;
                        status = "disabled";
 
                        iommus = <&apps_smmu 0x420 0x2>,
                                 <&apps_smmu 0x421 0x0>;
 
+                       interconnects = <&mmrt_virt MASTER_MDP_PORT0 RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+                                       <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
+                                        &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>;
+                       interconnect-names = "mdp0-mem",
+                                            "cpu-cfg";
+
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0 0x0f120000 0x0 0x1000>;
                        #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x0 0x0 0x20000000>;
                        clock-frequency = <19200000>;
 
                        frame@f121000 {
-                               reg = <0x0 0x0f121000 0x0 0x1000>, <0x0 0x0f122000 0x0 0x1000>;
+                               reg = <0x0 0x0f121000 0x1000>, <0x0 0x0f122000 0x1000>;
                                frame-number = <0>;
                                interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        frame@f123000 {
-                               reg = <0x0 0x0f123000 0x0 0x1000>;
+                               reg = <0x0 0x0f123000 0x1000>;
                                frame-number = <1>;
                                interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
                        frame@f124000 {
-                               reg = <0x0 0x0f124000 0x0 0x1000>;
+                               reg = <0x0 0x0f124000 0x1000>;
                                frame-number = <2>;
                                interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
                        frame@f125000 {
-                               reg = <0x0 0x0f125000 0x0 0x1000>;
+                               reg = <0x0 0x0f125000 0x1000>;
                                frame-number = <3>;
                                interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
                        frame@f126000 {
-                               reg = <0x0 0x0f126000 0x0 0x1000>;
+                               reg = <0x0 0x0f126000 0x1000>;
                                frame-number = <4>;
                                interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
                        frame@f127000 {
-                               reg = <0x0 0x0f127000 0x0 0x1000>;
+                               reg = <0x0 0x0f127000 0x1000>;
                                frame-number = <5>;
                                interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
 
                        frame@f128000 {
-                               reg = <0x0 0x0f128000 0x0 0x1000>;
+                               reg = <0x0 0x0f128000 0x1000>;
                                frame-number = <6>;
                                interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
index eb07eca3a48df6b7ad869ad9708fd9fd1e9b1a84..1dd3a4056e26f3888dcc95e300f44f289f99d8bb 100644 (file)
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <66666667>;
 
+                       interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq", "ss_phy_irq";
+
                        power-domains = <&gcc USB30_PRIM_GDSC>;
                        qcom,select-utmi-as-pipe-clk;
                        status = "disabled";
index 8fd6f4d03490016c40269d7324bf671cd7a2a1d0..43cffe8e1247e35d65bfb4b01aec4861e04f396c 100644 (file)
                              <0 0x01d90000 0 0x8000>;
                        reg-names = "std", "ice";
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        #reset-cells = <1>;
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sm6350-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x18c>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
 
                        clock-names = "ref",
                                      "ref_aux";
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
-                       status = "disabled";
+                       #phy-cells = <0>;
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x128>,
-                                     <0 0x01d87600 0 0x1fc>,
-                                     <0 0x01d87c00 0 0x1dc>,
-                                     <0 0x01d87800 0 0x128>,
-                                     <0 0x01d87a00 0 0x1fc>;
-                               #phy-cells = <0>;
-                       };
+                       status = "disabled";
                };
 
                ipa: ipa@1e40000 {
                        compatible = "qcom,apss-wdt-sm6350", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                timer@17c20000 {
index b2f1bb1d58e974080fc1d23f799a15aef0bdf8a6..cca2c2eb88ade75066cbef3837dbb6bd2a0865b5 100644 (file)
                };
        };
 
+       touch_avdd: touch-avdd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "touch_avdd";
+               gpio = <&tlmm 59 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_avdd_default>;
+               enable-active-high;
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
                interrupts = <22 0x2008>;
 
                vdd-supply = <&pm6125_l13>;
+               avdd-supply = <&touch_avdd>;
 
                pinctrl-names = "default";
-               pinctrl-0 = <&ts_int_default &ts_avdd_default>;
+               pinctrl-0 = <&ts_int_default>;
        };
 };
 
        status = "okay";
 };
 
+&remoteproc_mss {
+       firmware-name = "qcom/sm6375/Sony/murray/modem.mbn";
+       status = "okay";
+};
+
 &rpm_requests {
        regulators-0 {
                compatible = "qcom,rpm-pm6125-regulators";
                };
 
                pm6125_l7: l7 {
-                       regulator-min-microvolt = <720000>;
-                       regulator-max-microvolt = <1050000>;
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
                };
 
                pm6125_l8: l8 {
 
                pm6125_l21: l21 {
                        regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3400000>;
+                       regulator-max-microvolt = <3312000>;
                };
 
                pm6125_l22: l22 {
 
                pm6125_l23: l23 {
                        regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3400000>;
+                       regulator-max-microvolt = <3312000>;
                };
 
                pm6125_l24: l24 {
                };
 
                pmr735a_l2: l2 {
-                       regulator-min-microvolt = <352000>;
-                       regulator-max-microvolt = <796000>;
+                       regulator-min-microvolt = <640000>;
+                       regulator-max-microvolt = <640000>;
                };
 
                pmr735a_l3: l3 {
                pins = "gpio59";
                function = "gpio";
                drive-strength = <8>;
-               output-high;
+               output-low;
        };
 };
 
 };
 
 &usb_1_hsphy {
+       vdda-pll-supply = <&pm6125_l7>;
+       vdda18-supply = <&pm6125_l10>;
+       vdda33-supply = <&pmr735a_l7>;
+       status = "okay";
+};
+
+&wifi {
+       vdd-0.8-cx-mx-supply = <&pmr735a_l2>;
+       vdd-1.8-xo-supply = <&pm6125_l16>;
+       vdd-1.3-rfa-supply = <&pm6125_l2>;
+       vdd-3.3-ch0-supply = <&pm6125_l23>;
+       vdd-3.3-ch1-supply = <&pm6125_l21>;
        status = "okay";
 };
 
index e7ff55443da702c559cf59a6c8f874178947b69f..7ac8bf26dda3a28c40ce996705fb42c0ddf545f2 100644 (file)
                };
        };
 
+       mpm: interrupt-controller {
+               compatible = "qcom,mpm";
+               qcom,rpm-msg-ram = <&apss_mpm>;
+               interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_SMP2P>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               #power-domain-cells = <0>;
+               interrupt-parent = <&intc>;
+               qcom,mpm-pin-count = <96>;
+               qcom,mpm-pin-map = <5 296>,  /* Soundwire wake_irq */
+                                  <12 422>, /* DWC3 ss_phy_irq */
+                                  <86 183>, /* MPM wake, SPMI */
+                                  <89 314>, /* TSENS0 0C */
+                                  <90 315>, /* TSENS1 0C */
+                                  <93 164>, /* DWC3 dm_hs_phy_irq */
+                                  <94 165>; /* DWC3 dp_hs_phy_irq */
+       };
+
        memory@80000000 {
                device_type = "memory";
                /* We expect the bootloader to fill in the size */
 
                CLUSTER_PD: power-domain-cpu-cluster0 {
                        #power-domain-cells = <0>;
+                       power-domains = <&mpm>;
                        domain-idle-states = <&CLUSTER_SLEEP_0>;
                };
        };
                        reg = <0 0x00500000 0 0x800000>;
                        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-ranges = <&tlmm 0 0 157>;
-                       /* TODO: Hook up MPM as wakeup-parent when it's there */
+                       wakeup-parent = <&mpm>;
                        interrupt-controller;
                        gpio-controller;
                        #interrupt-cells = <2>;
                                drive-strength = <6>;
                                bias-disable;
                        };
+
+                       qup_uart1_default: qup-uart1-default-state {
+                               cts-pins {
+                                       pins = "gpio61";
+                                       function = "qup01";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               rts-pins {
+                                       pins = "gpio62";
+                                       function = "qup01";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               tx-pins {
+                                       pins = "gpio63";
+                                       function = "qup01";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rx-pins {
+                                       pins = "gpio64";
+                                       function = "qup01";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                gcc: clock-controller@1400000 {
                              <0 0x01c0a000 0 0x26000>;
                        reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
                        interrupt-names = "periph_irq";
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,ee = <0>;
                        qcom,channel = <0>;
                        #address-cells = <2>;
                };
 
                rpm_msg_ram: sram@45f0000 {
-                       compatible = "qcom,rpm-msg-ram";
+                       compatible = "qcom,rpm-msg-ram", "mmio-sram";
                        reg = <0 0x045f0000 0 0x7000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x0 0x045f0000 0x7000>;
+
+                       apss_mpm: sram@1b8 {
+                               reg = <0x1b8 0x48>;
+                       };
                };
 
                sram@4690000 {
                                status = "disabled";
                        };
 
+                       uart1: serial@4a84000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x04a84000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+                               power-domains = <&rpmpd SM6375_VDDCX>;
+                               operating-points-v2 = <&qup_opp_table>;
+                               pinctrl-0 = <&qup_uart1_default>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
                        i2c2: i2c@4a88000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0x0 0x04a88000 0x0 0x4000>;
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <133333333>;
 
-                       interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&mpm 12 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&mpm 93 IRQ_TYPE_EDGE_BOTH>,
+                                             <&mpm 94 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq",
                                          "ss_phy_irq",
                                          "dm_hs_phy_irq",
index bb161b536da466098aa75c4d5d9e8875697a002d..de670b407ef1425f7de2d2aa822a574a3a7496e3 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/usb/pd.h>
 #include "sm8150.dtsi"
 #include "pm8150.dtsi"
 #include "pm8150b.dtsi"
                        gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
                };
        };
+
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
 };
 
 &apps_rsc {
                vdda_sp_sensor:
                vdda_ufs_2ln_core_1:
                vdda_ufs_2ln_core_2:
-               vdda_usb_ss_dp_core_1:
-               vdda_usb_ss_dp_core_2:
                vdda_qlink_lv:
                vdda_qlink_lv_ck:
                vreg_l5a_0p875: ldo5 {
                        regulator-max-microvolt = <3008000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
+
+               vreg_l18a_0p8: ldo18 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
        };
 
        regulators-1 {
        status = "okay";
 };
 
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
 &gpu {
-       /*
-        * NOTE: "amd,imageon" makes Adreno start in headless mode, remove it
-        * after display support is added on this board.
-        */
-       compatible = "qcom,adreno-640.1", "qcom,adreno", "amd,imageon";
        status = "okay";
 };
 
+&i2c4 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       typec-mux@42 {
+               compatible = "fcs,fsa4480";
+               reg = <0x42>;
+
+               interrupts-extended = <&tlmm 152 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc-supply = <&vreg_bob>;
+               mode-switch;
+               orientation-switch;
+
+               port {
+                       fsa4480_sbu_mux: endpoint {
+                               remote-endpoint = <&pm8150b_typec_sbu_out>;
+                       };
+               };
+       };
+};
+
+&i2c9 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       lt9611_codec: hdmi-bridge@3b {
+               compatible = "lontium,lt9611";
+               reg = <0x3b>;
+               #sound-dai-cells = <1>;
+
+               interrupts-extended = <&tlmm 9 IRQ_TYPE_EDGE_FALLING>;
+
+               reset-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&vreg_s4a_1p8>;
+               vcc-supply = <&vreg_bob>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lt9611_irq_pin>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lt9611_a: endpoint {
+                                       remote-endpoint = <&mdss_dsi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lt9611_b: endpoint {
+                                       remote-endpoint = <&mdss_dsi1_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               lt9611_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp {
+       status = "okay";
+};
+
+&mdss_dp_out {
+       data-lanes = <0 1>;
+       remote-endpoint = <&usb_1_qmpphy_dp_in>;
+};
+
+&mdss_dsi0 {
+       status = "okay";
+       vdda-supply = <&vreg_l3c_1p2>;
+
+       qcom,dual-dsi-mode;
+       qcom,master-dsi;
+
+       ports {
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&lt9611_a>;
+                               data-lanes = <0 1 2 3>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+       vdds-supply = <&vreg_l5a_0p875>;
+};
+
+&mdss_dsi1 {
+       vdda-supply = <&vreg_l3c_1p2>;
+
+       qcom,dual-dsi-mode;
+
+       /* DSI1 is slave, so use DSI0 clocks */
+       assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+
+       status = "okay";
+
+       ports {
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&lt9611_b>;
+                               data-lanes = <0 1 2 3>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi1_phy {
+       vdds-supply = <&vreg_l5a_0p875>;
+       status = "okay";
+};
+
+&pm8150b_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <3000000>;
+       status = "okay";
+};
+
+&pm8150b_typec {
+       status = "okay";
+
+       vdd-pdphy-supply = <&vreg_l2a_3p1>;
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "source";
+               data-role = "dual";
+               self-powered;
+
+               source-pdos = <PDO_FIXED(5000, 3000,
+                                        PDO_FIXED_DUAL_ROLE |
+                                        PDO_FIXED_USB_COMM |
+                                        PDO_FIXED_DATA_SWAP)>;
+
+               altmodes {
+                       displayport {
+                               svid = /bits/ 16 <0xff01>;
+                               vdo = <0x00001c46>;
+                       };
+               };
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               pm8150b_role_switch_in: endpoint {
+                                       remote-endpoint = <&usb_1_dwc3_hs>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               pm8150b_typec_mux_in: endpoint {
+                                       remote-endpoint = <&usb_1_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               pm8150b_typec_sbu_out: endpoint {
+                                       remote-endpoint = <&fsa4480_sbu_mux>;
+                               };
+                       };
+               };
+       };
+};
+
 &pon_pwrkey {
        status = "okay";
 };
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&qupv3_id_0 {
+       status = "okay";
+};
+
 &qupv3_id_1 {
        status = "okay";
 };
 
 &tlmm {
        gpio-reserved-ranges = <0 4>, <126 4>;
+
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio9";
+               function = "gpio";
+               bias-disable;
+       };
+
 };
 
 &uart2 {
 &usb_1_qmpphy {
        status = "okay";
        vdda-phy-supply = <&vreg_l3c_1p2>;
-       vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
+       vdda-pll-supply = <&vreg_l18a_0p8>;
+       orientation-switch;
+};
+
+&usb_1_qmpphy_dp_in {
+       remote-endpoint = <&mdss_dp_out>;
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pm8150b_typec_mux_in>;
+};
+
+&usb_1_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
 };
 
 &usb_2_qmpphy {
        status = "okay";
        vdda-phy-supply = <&vreg_l3c_1p2>;
-       vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
+       vdda-pll-supply = <&vreg_l5a_0p875>;
 };
 
 &usb_1 {
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pm8150b_role_switch_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
 };
 
 &usb_2_dwc3 {
index 97623af13464c26d5ef30d62257819e014afdec4..761a6757dc26f082d0488661d8035f4f3e51a18e 100644 (file)
                              <0x0 0x010ad000 0x0 0x3000>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sm8150";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                        phys = <&pcie0_phy>;
                        phy-names = "pciephy";
 
-                       perst-gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
+                       perst-gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
                        enable-gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 
                        pinctrl-names = "default";
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sm8150";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                        phys = <&pcie1_phy>;
                        phy-names = "pciephy";
 
-                       perst-gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>;
+                       perst-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
                        enable-gpio = <&tlmm 104 GPIO_ACTIVE_HIGH>;
 
                        pinctrl-names = "default";
                              <0 0x01d90000 0 0x8000>;
                        reg-names = "std", "ice";
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        #reset-cells = <1>;
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sm8150-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x1c0>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
+
                        clock-names = "ref",
                                      "ref_aux";
                        clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x16c>,
-                                     <0 0x01d87600 0 0x200>,
-                                     <0 0x01d87c00 0 0x200>,
-                                     <0 0x01d87800 0 0x16c>,
-                                     <0 0x01d87a00 0 0x200>;
-                               #phy-cells = <0>;
-                       };
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                cryptobam: dma-controller@1dc4000 {
                        };
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
 
-                               port@1 {
-                                       reg = <1>;
+                               port {
                                        replicator1_in: endpoint {
                                                remote-endpoint = <&replicator_out1>;
                                        };
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
                };
 
                usb_2_qmpphy: phy@88eb000 {
                        compatible = "qcom,sm8150-qmp-usb3-uni-phy";
-                       reg = <0 0x088eb000 0 0x200>;
-                       status = "disabled";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x088eb000 0 0x1000>;
 
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
-                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
-                       clock-names = "aux", "ref_clk_src", "ref", "com_aux";
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
-                       resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
-                                <&gcc GCC_USB3_PHY_SEC_BCR>;
-                       reset-names = "phy", "common";
+                       resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb_2_ssphy: phy@88eb200 {
-                               reg = <0 0x088eb200 0 0x200>,
-                                     <0 0x088eb400 0 0x200>,
-                                     <0 0x088eb800 0 0x800>,
-                                     <0 0x088eb600 0 0x200>;
-                               #clock-cells = <0>;
-                               #phy-cells = <0>;
-                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
+                       status = "disabled";
                };
 
                sdhc_2: mmc@8804000 {
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                snps,dis_enblslpm_quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                               };
+                                       };
+                               };
                        };
                };
 
                                          <&gcc GCC_USB30_SEC_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
-                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                                iommus = <&apps_smmu 0x160 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_2_hsphy>, <&usb_2_ssphy>;
+                               phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                                                        remote-endpoint = <&mdss_dsi1_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,sm8150-dp", "qcom,sm8350-dp";
+                               reg = <0 0xae90000 0 0x200>,
+                                     <0 0xae90200 0 0x200>,
+                                     <0 0xae90400 0 0x600>,
+                                     <0 0x0ae90a00 0 0x600>,
+                                     <0 0x0ae91000 0 0x600>;
+
+                               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 SM8250_MMCX>;
+
+                               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,sm8150-dsi-ctrl", "qcom,mdss-dsi-ctrl";
                                reg = <0 0x0ae94000 0 0x400>;
                                      "dp_phy_pll_link_clk",
                                      "dp_phy_pll_vco_div_clk";
                        power-domains = <&rpmhpd SM8150_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
                        compatible = "qcom,apss-wdt-sm8150", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                timer@17c20000 {
index 85e5cf3dc91e1d8396d02bdacd143afad9255e02..946365f15a5985a6791d587308151ee9c1764b6c 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/arm/qcom,ids.h>
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/usb/pd.h>
 #include "sm8250.dtsi"
 #include "pm8150.dtsi"
 #include "pm8150b.dtsi"
@@ -23,7 +24,7 @@
 /delete-node/ &xbl_aop_mem;
 
 / {
-       classis-type = "tablet";
+       chassis-type = "tablet";
 
        /* required for bootloader to select correct board */
        qcom,msm-id = <QCOM_ID_SM8250 0x20001>; /* SM8250 v2.1 */
        };
 
        reserved-memory {
-               xbl_aop_mem: xbl-aop@80700000 {
+               xbl_aop_mem: xbl-aop@80600000 {
                        reg = <0x0 0x80600000 0x0 0x260000>;
                        no-map;
                };
        };
 };
 
+&pm8150b_typec {
+       vdd-pdphy-supply = <&vreg_l2a_3p1>;
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "source";
+               data-role = "dual";
+               self-powered;
+
+               source-pdos = <PDO_FIXED(5000, 3000,
+                                        PDO_FIXED_DUAL_ROLE |
+                                        PDO_FIXED_USB_COMM |
+                                        PDO_FIXED_DATA_SWAP)>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               pm8150b_role_switch_in: endpoint {
+                                       remote-endpoint = <&usb_1_role_switch_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pm8150b_vbus {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
        maximum-speed = "high-speed";
        /* Remove USB3 phy */
        phys = <&usb_1_hsphy>;
        phy-names = "usb2-phy";
+       usb-role-switch;
 };
 
 &usb_1_hsphy {
        status = "okay";
 };
 
+&usb_1_role_switch_out {
+       remote-endpoint = <&pm8150b_role_switch_in>;
+};
+
 &ufs_mem_hc {
        vcc-supply = <&vreg_l17a_3p0>;
        vcc-max-microamp = <800000>;
diff --git a/src/arm64/qcom/sm8250-xiaomi-pipa.dts b/src/arm64/qcom/sm8250-xiaomi-pipa.dts
new file mode 100644 (file)
index 0000000..86e1f7f
--- /dev/null
@@ -0,0 +1,623 @@
+// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+/*
+ * Copyright (c) 2023 Luka Panio <lukapanio@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8250.dtsi"
+#include "pm8150.dtsi"
+#include "pm8150b.dtsi"
+#include "pm8150l.dtsi"
+#include "pm8009.dtsi"
+
+/*
+ * Delete following upstream (sm8250.dtsi) reserved
+ * memory mappings which are different on this device.
+ */
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_secure_heap;
+/delete-node/ &slpi_mem;
+/delete-node/ &spss_mem;
+/delete-node/ &xbl_aop_mem;
+
+/ {
+
+       model = "Xiaomi Pad 6";
+       compatible = "xiaomi,pipa", "qcom,sm8250";
+
+       chassis-type = "tablet";
+
+       /* required for bootloader to select correct board */
+       qcom,msm-id = <QCOM_ID_SM8250 0x20001>; /* SM8250 v2.1 */
+       qcom,board-id = <0x34 0>;
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer: framebuffer@9c000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x0 0x9c000000 0x0 0x2300000>;
+                       width = <1800>;
+                       height = <2880>;
+                       stride = <(1800 * 4)>;
+                       format = "a8r8g8b8";
+               };
+       };
+
+       battery_l: battery-l {
+               compatible = "simple-battery";
+               voltage-min-design-microvolt = <3870000>;
+               energy-full-design-microwatt-hours = <16700000>;
+               charge-full-design-microamp-hours = <4420000>;
+       };
+
+       battery_r: battery-r {
+               compatible = "simple-battery";
+               voltage-min-design-microvolt = <3870000>;
+               energy-full-design-microwatt-hours = <16700000>;
+               charge-full-design-microamp-hours = <4420000>;
+       };
+
+       bl_vddpos_5p5: bl-vddpos-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "bl_vddpos_5p5";
+               regulator-min-microvolt = <5500000>;
+               regulator-max-microvolt = <5500000>;
+               regulator-enable-ramp-delay = <233>;
+               gpio = <&tlmm 130 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       bl_vddneg_5p5: bl-vddneg-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "bl_vddneg_5p5";
+               regulator-min-microvolt = <5500000>;
+               regulator-max-microvolt = <5500000>;
+               regulator-enable-ramp-delay = <233>;
+               gpio = <&tlmm 131 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&vol_up_n>;
+               pinctrl-names = "default";
+
+               key-vol-up {
+                       label = "Volume Up";
+                       gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       /* S6c is really ebi.lvl but it's there for supply map completeness sake. */
+       vreg_s6c_0p88: smpc6-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_s6c_0p88";
+               regulator-min-microvolt = <880000>;
+               regulator-max-microvolt = <880000>;
+               regulator-always-on;
+               vin-supply = <&vph_pwr>;
+       };
+
+       reserved-memory {
+               xbl_aop_mem: xbl-aop@80700000 {
+                       reg = <0x0 0x80600000 0x0 0x260000>;
+                       no-map;
+               };
+
+               slpi_mem: slpi@88c00000 {
+                       reg = <0x0 0x88c00000 0x0 0x2f00000>;
+                       no-map;
+               };
+
+               adsp_mem: adsp@8bb00000 {
+                       reg = <0x0 0x8bb00000 0x0 0x2500000>;
+                       no-map;
+               };
+
+               spss_mem: spss@8e000000 {
+                       reg = <0x0 0x8e000000 0x0 0x100000>;
+                       no-map;
+               };
+
+               cdsp_secure_heap: cdsp-secure-heap@8e100000 {
+                       reg = <0x0 0x8e100000 0x0 0x4600000>;
+                       no-map;
+               };
+
+               cont_splash_mem: cont-splash@9c000000 {
+                       reg = <0x0 0x9c000000 0x0 0x2300000>;
+                       no-map;
+               };
+
+               ramoops@b0000000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0xb0000000 0x0 0x400000>;
+                       record-size = <0x1000>;
+                       console-size = <0x200000>;
+                       ecc-size = <16>;
+                       no-map;
+               };
+       };
+};
+
+&adsp {
+       firmware-name = "qcom/sm8250/xiaomi/pipa/adsp.mbn";
+       status = "okay";
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8150-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
+               vdd-l2-l10-supply = <&vreg_bob>;
+               vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
+               vdd-l6-l9-supply = <&vreg_s8c_1p35>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
+               vdd-l13-l16-l17-supply = <&vreg_bob>;
+
+               /* (S1+S2+S3) - cx.lvl (ARC) */
+
+               vreg_s4a_1p8: smps4 {
+                       regulator-name = "vreg_s4a_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5a_1p9: smps5 {
+                       regulator-name = "vreg_s5a_1p9";
+                       regulator-min-microvolt = <1900000>;
+                       regulator-max-microvolt = <2040000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6a_0p95: smps6 {
+                       regulator-name = "vreg_s6a_0p95";
+                       regulator-min-microvolt = <600000>;
+                       regulator-max-microvolt = <1128000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2a_3p1: ldo2 {
+                       regulator-name = "vreg_l2a_3p1";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3a_0p9: ldo3 {
+                       regulator-name = "vreg_l3a_0p9";
+                       regulator-min-microvolt = <928000>;
+                       regulator-max-microvolt = <932000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L4 - lmx.lvl (ARC) */
+
+               vreg_l5a_0p88: ldo5 {
+                       regulator-name = "vreg_l5a_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6a_1p2: ldo6 {
+                       regulator-name = "vreg_l6a_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       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>;
+               };
+
+               /* L7 is unused. */
+
+               vreg_l9a_1p2: ldo9 {
+                       regulator-name = "vreg_l9a_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L10 is unused, L11 - lcx.lvl (ARC) */
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-name = "vreg_l12a_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L13 is unused. */
+
+               vreg_l14a_1p88: ldo14 {
+                       regulator-name = "vreg_l14a_1p88";
+                       regulator-min-microvolt = <1880000>;
+                       regulator-max-microvolt = <1880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L15 & L16 are unused. */
+
+               vreg_l17a_3p0: ldo17 {
+                       regulator-name = "vreg_l17a_3p0";
+                       regulator-min-microvolt = <2496000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18a_0p9: ldo18 {
+                       regulator-name = "vreg_l18a_0p9";
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8150l-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-l1-l8-supply = <&vreg_s4a_1p8>;
+               vdd-l2-l3-supply = <&vreg_s8c_1p35>;
+               vdd-l4-l5-l6-supply = <&vreg_bob>;
+               vdd-l7-l11-supply = <&vreg_bob>;
+               vdd-l9-l10-supply = <&vreg_bob>;
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_bob: bob {
+                       regulator-name = "vreg_bob";
+                       regulator-min-microvolt = <3350000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               /*
+                * S1-S6 are ARCs:
+                * (S1+S2) - gfx.lvl,
+                * S3 - mx.lvl,
+                * (S4+S5) - mmcx.lvl,
+                * S6 - ebi.lvl
+                */
+
+               vreg_s7c_0p35: smps7 {
+                       regulator-name = "vreg_s7c_0p35";
+                       regulator-min-microvolt = <348000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s8c_1p35: smps8 {
+                       regulator-name = "vreg_s8c_1p35";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1400000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L2-4 are unused. */
+
+               vreg_l5c_1p8: ldo5 {
+                       regulator-name = "vreg_l5c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_2p9: ldo6 {
+                       regulator-name = "vreg_l6c_2p9";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_2p85: ldo7 {
+                       regulator-name = "vreg_l7c_2p85";
+                       regulator-min-microvolt = <2856000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p8: ldo8 {
+                       regulator-name = "vreg_l8c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p9: ldo9 {
+                       regulator-name = "vreg_l9c_2p9";
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_3p3: ldo10 {
+                       regulator-name = "vreg_l10c_3p3";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_3p0: ldo11 {
+                       regulator-name = "vreg_l11c_3p0";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8009-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vreg_bob>;
+               vdd-l2-supply = <&vreg_s8c_1p35>;
+               vdd-l5-l6-supply = <&vreg_bob>;
+               vdd-l7-supply = <&vreg_s4a_1p8>;
+
+               vreg_s1f_1p2: smps1 {
+                       regulator-name = "vreg_s1f_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2f_0p5: smps2 {
+                       regulator-name = "vreg_s2f_0p5";
+                       regulator-min-microvolt = <512000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L1 is unused. */
+
+               vreg_l2f_1p3: ldo2 {
+                       regulator-name = "vreg_l2f_1p3";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L3 & L4 are unused. */
+
+               vreg_l5f_2p8: ldo5 {
+                       regulator-name = "vreg_l5f_2p85";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6f_2p8: ldo6 {
+                       regulator-name = "vreg_l6f_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7f_1p8: ldo7 {
+                       regulator-name = "vreg_l7f_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&cdsp {
+       firmware-name = "qcom/sm8250/xiaomi/pipa/cdsp.mbn";
+       status = "okay";
+};
+
+&gmu {
+       status = "okay";
+};
+
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&gpi_dma2 {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&gpu_mem>;
+               firmware-name = "qcom/sm8250/xiaomi/pipa/a650_zap.mbn";
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       fuel-gauge@55 {
+               compatible = "ti,bq27z561";
+               reg = <0x55>;
+               monitored-battery = <&battery_r>;
+       };
+};
+
+&i2c11 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       backlight: backlight@11 {
+               compatible = "kinetic,ktz8866";
+               reg = <0x11>;
+               vddpos-supply = <&bl_vddpos_5p5>;
+               vddneg-supply = <&bl_vddneg_5p5>;
+               enable-gpios = <&tlmm 139 GPIO_ACTIVE_HIGH>;
+               current-num-sinks = <5>;
+               kinetic,current-ramp-delay-ms = <128>;
+               kinetic,led-enable-ramp-delay-ms = <1>;
+               kinetic,enable-lcd-bias;
+       };
+};
+
+&i2c13 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       fuel-gauge@55 {
+               compatible = "ti,bq27z561";
+               reg = <0x55>;
+               monitored-battery = <&battery_l>;
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l5a_0p88>;
+       vdda-pll-supply = <&vreg_l9a_1p2>;
+       status = "okay";
+};
+
+&pm8150_gpios {
+       vol_up_n: vol-up-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               input-enable;
+               bias-pull-up;
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qupv3_id_2 {
+       status = "okay";
+};
+
+&slpi {
+       firmware-name = "qcom/sm8250/xiaomi/pipa/slpi.mbn";
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l5a_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l2a_3p1>;
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       status = "okay";
+       vdda-phy-supply = <&vreg_l9a_1p2>;
+       vdda-pll-supply = <&vreg_l18a_0p9>;
+};
+
+&ufs_mem_hc {
+       vcc-supply = <&vreg_l17a_3p0>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l6a_1p2>;
+       vccq-max-microamp = <800000>;
+       vccq2-supply = <&vreg_s4a_1p8>;
+       vccq2-max-microamp = <800000>;
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l5a_0p88>;
+       vdda-pll-supply = <&vreg_l9a_1p2>;
+       status = "okay";
+};
+
+&venus {
+       firmware-name = "qcom/sm8250/xiaomi/pipa/venus.mbn";
+       status = "okay";
+};
index be970472f6c4e75b5b036aec8b8b2f7c70a63b31..760501c1301a6216fc22c48b388c4e69aa966a18 100644 (file)
        firmware {
                scm: scm {
                        compatible = "qcom,scm-sm8250", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x13000>;
                        #reset-cells = <1>;
                };
        };
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sm8250";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sm8250";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                        status = "disabled";
                };
 
-               pcie2: pci@1c10000 {
+               pcie2: pcie@1c10000 {
                        compatible = "qcom,pcie-sm8250";
                        reg = <0 0x01c10000 0 0x3000>,
                              <0 0x64000000 0 0xf1d>,
                                     "jedec,ufs-2.0";
                        reg = <0 0x01d84000 0 0x3000>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        #reset-cells = <1>;
                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
-                       freq-table-hz =
-                               <37500000 300000000>,
-                               <0 0>,
-                               <0 0>,
-                               <37500000 300000000>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>;
+
+                       operating-points-v2 = <&ufs_opp_table>;
 
                        interconnects = <&aggre1_noc MASTER_UFS_MEM 0 &mc_virt SLAVE_EBI_CH0 0>,
                                        <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_UFS_MEM_CFG 0>;
                        interconnect-names = "ufs-ddr", "cpu-ufs";
 
                        status = "disabled";
+
+                       ufs_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-37500000 {
+                                       opp-hz = /bits/ 64 <37500000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <37500000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-300000000 {
+                                       opp-hz = /bits/ 64 <300000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <300000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
                };
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sm8250-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x1c0>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
+
                        clock-names = "ref",
                                      "ref_aux";
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x16c>,
-                                     <0 0x01d87600 0 0x200>,
-                                     <0 0x01d87c00 0 0x200>,
-                                     <0 0x01d87800 0 0x16c>,
-                                     <0 0x01d87a00 0 0x200>;
-                               #phy-cells = <0>;
-                       };
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                cryptobam: dma-controller@1dc4000 {
                        #hwlock-cells = <1>;
                };
 
+               tcsr: syscon@1fc0000 {
+                       compatible = "qcom,sm8250-tcsr", "syscon";
+                       reg = <0x0 0x1fc0000 0x0 0x30000>;
+               };
+
                wsamacro: codec@3240000 {
                        compatible = "qcom,sm8250-lpass-wsa-macro";
                        reg = <0 0x03240000 0 0x1000>;
                        status = "disabled";
                };
 
-               swr0: soundwire-controller@3250000 {
+               swr0: soundwire@3250000 {
                        reg = <0 0x03250000 0 0x2000>;
                        compatible = "qcom,soundwire-v1.5.1";
                        interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
                        #sound-dai-cells = <1>;
                };
 
-               swr1: soundwire-controller@3210000 {
+               swr1: soundwire@3210000 {
                        reg = <0 0x03210000 0 0x2000>;
                        compatible = "qcom,soundwire-v1.5.1";
                        status = "disabled";
                };
 
                /* tx macro */
-               swr2: soundwire-controller@3230000 {
+               swr2: soundwire@3230000 {
                        reg = <0 0x03230000 0 0x2000>;
                        compatible = "qcom,soundwire-v1.5.1";
                        interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "apb_pclk";
 
                        out-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
 
-                               port@0 {
-                                       reg = <0>;
+                               port {
                                        tpda_out_funnel_qatb: endpoint {
                                                remote-endpoint = <&funnel_qatb_in_tpda>;
                                        };
                        };
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
+                               port {
                                        funnel_qatb_in_tpda: endpoint {
                                                remote-endpoint = <&tpda_out_funnel_qatb>;
                                        };
                        };
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
 
-                               port@0 {
-                                       reg = <0>;
+                               port {
                                        etf_in_funnel_swao_out: endpoint {
                                                remote-endpoint = <&funnel_swao_out_etf>;
                                        };
                        clock-names = "apb_pclk";
 
                        out-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                port {
                                        tpdm_mm_out_tpda9: endpoint {
                                                remote-endpoint = <&tpda_9_in_tpdm_mm>;
                        };
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
+                               port {
                                        funnel_apss_merg_in_funnel_apss: endpoint {
                                        remote-endpoint = <&funnel_apss_out_funnel_apss_merg>;
                                        };
 
                usb_2_qmpphy: phy@88eb000 {
                        compatible = "qcom,sm8250-qmp-usb3-uni-phy";
-                       reg = <0 0x088eb000 0 0x200>;
-                       status = "disabled";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x088eb000 0 0x1000>;
 
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_USB3_SEC_CLKREF_EN>,
-                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
-                       clock-names = "aux", "ref_clk_src", "ref", "com_aux";
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
-                       resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
-                                <&gcc GCC_USB3_PHY_SEC_BCR>;
-                       reset-names = "phy", "common";
+                       resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
 
-                       usb_2_ssphy: phy@88eb200 {
-                               reg = <0 0x088eb200 0 0x200>,
-                                     <0 0x088eb400 0 0x200>,
-                                     <0 0x088eb800 0 0x800>;
-                               #clock-cells = <0>;
-                               #phy-cells = <0>;
-                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
+                       status = "disabled";
                };
 
                sdhc_2: mmc@8804000 {
                                          "dp_hs_phy_irq";
 
                        power-domains = <&gcc USB30_PRIM_GDSC>;
+                       wakeup-source;
 
                        resets = <&gcc GCC_USB30_PRIM_BCR>;
 
                                          "dp_hs_phy_irq";
 
                        power-domains = <&gcc USB30_SEC_GDSC>;
+                       wakeup-source;
 
                        resets = <&gcc GCC_USB30_SEC_BCR>;
 
                                iommus = <&apps_smmu 0x20 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_2_hsphy>, <&usb_2_ssphy>;
+                               phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                        compatible = "qcom,apss-wdt-sm8250", "qcom,kpss-wdt";
                        reg = <0 0x17c10000 0 0x1000>;
                        clocks = <&sleep_clk>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
                };
 
                timer@17c20000 {
index b46236235b7f4b7e72d4adc0729c63a00734781e..e78c83a897c283e855dac3183faeab48d798cc43 100644 (file)
        firmware {
                scm: scm {
                        compatible = "qcom,scm-sm8350", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x13000>;
                        #reset-cells = <1>;
                };
        };
                                 <0>,
                                 <0>,
                                 <0>,
-                                <&ufs_mem_phy_lanes 0>,
-                                <&ufs_mem_phy_lanes 1>,
-                                <&ufs_mem_phy_lanes 2>,
+                                <&ufs_mem_phy 0>,
+                                <&ufs_mem_phy 1>,
+                                <&ufs_mem_phy 2>,
                                 <&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
                                 <0>;
                };
                        };
                };
 
-               gpi_dma0: dma-controller@9800000 {
+               gpi_dma0: dma-controller@900000 {
                        compatible = "qcom,sm8350-gpi-dma", "qcom,sm6350-gpi-dma";
-                       reg = <0 0x09800000 0 0x60000>;
+                       reg = <0 0x00900000 0 0x60000>;
                        interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sm8350";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sm8350";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                                     "jedec,ufs-2.0";
                        reg = <0 0x01d84000 0 0x3000>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        #reset-cells = <1>;
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sm8350-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x1c4>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
+
                        clock-names = "ref",
                                      "ref_aux";
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x188>,
-                                     <0 0x01d87600 0 0x200>,
-                                     <0 0x01d87c00 0 0x200>,
-                                     <0 0x01d87800 0 0x188>,
-                                     <0 0x01d87a00 0 0x200>;
-                               #clock-cells = <1>;
-                               #phy-cells = <0>;
-                       };
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                cryptobam: dma-controller@1dc4000 {
                        #hwlock-cells = <1>;
                };
 
+               tcsr: syscon@1fc0000 {
+                       compatible = "qcom,sm8350-tcsr", "syscon";
+                       reg = <0x0 0x1fc0000 0x0 0x30000>;
+               };
+
                lpass_tlmm: pinctrl@33c0000 {
                        compatible = "qcom,sm8350-lpass-lpi-pinctrl";
                        reg = <0 0x033c0000 0 0x20000>,
                        compatible = "qcom,sm8350-mpss-pas";
                        reg = <0x0 0x04080000 0x0 0x4040>;
 
-                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
                        compatible = "qcom,sm8350-slpi-pas";
                        reg = <0 0x05c00000 0 0x4000>;
 
-                       interrupts-extended = <&pdc 9 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 9 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_slpi_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_slpi_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_slpi_in 2 IRQ_TYPE_EDGE_RISING>,
                        };
                };
 
-               usb_2_qmpphy: phy-wrapper@88eb000 {
+               usb_2_qmpphy: phy@88eb000 {
                        compatible = "qcom,sm8350-qmp-usb3-uni-phy";
-                       reg = <0 0x088eb000 0 0x200>;
+                       reg = <0 0x088eb000 0 0x2000>;
                        status = "disabled";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
 
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_USB3_SEC_CLKREF_EN>,
-                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
-                       clock-names = "aux", "ref_clk_src", "ref", "com_aux";
-
-                       resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
-                                <&gcc GCC_USB3_PHY_SEC_BCR>;
-                       reset-names = "phy", "common";
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
 
-                       usb_2_ssphy: phy@88ebe00 {
-                               reg = <0 0x088ebe00 0 0x200>,
-                                     <0 0x088ec000 0 0x200>,
-                                     <0 0x088eb200 0 0x1100>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_uni_phy_pipe_clk_src";
-                       };
+                       resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
                };
 
                dc_noc: interconnect@90c0000 {
                                iommus = <&apps_smmu 0x20 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_2_hsphy>, <&usb_2_ssphy>;
+                               phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
                };
                        #size-cells = <2>;
                        ranges;
 
-                       dpu_opp_table: opp-table {
-                               compatible = "operating-points-v2";
-
-                               /* TODO: opp-200000000 should work with
-                                * &rpmhpd_opp_low_svs, but one some of
-                                * sm8350_hdk boards reboot using this
-                                * opp.
-                                */
-                               opp-200000000 {
-                                       opp-hz = /bits/ 64 <200000000>;
-                                       required-opps = <&rpmhpd_opp_svs>;
-                               };
-
-                               opp-300000000 {
-                                       opp-hz = /bits/ 64 <300000000>;
-                                       required-opps = <&rpmhpd_opp_svs>;
-                               };
-
-                               opp-345000000 {
-                                       opp-hz = /bits/ 64 <345000000>;
-                                       required-opps = <&rpmhpd_opp_svs_l1>;
-                               };
-
-                               opp-460000000 {
-                                       opp-hz = /bits/ 64 <460000000>;
-                                       required-opps = <&rpmhpd_opp_nom>;
-                               };
-                       };
-
                        mdss_mdp: display-controller@ae01000 {
                                compatible = "qcom,sm8350-dpu";
                                reg = <0 0x0ae01000 0 0x8f000>,
                                interrupt-parent = <&mdss>;
                                interrupts = <0>;
 
+                               dpu_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       /* TODO: opp-200000000 should work with
+                                        * &rpmhpd_opp_low_svs, but one some of
+                                        * sm8350_hdk boards reboot using this
+                                        * opp.
+                                        */
+                                       opp-200000000 {
+                                               opp-hz = /bits/ 64 <200000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-300000000 {
+                                               opp-hz = /bits/ 64 <300000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-345000000 {
+                                               opp-hz = /bits/ 64 <345000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-460000000 {
+                                               opp-hz = /bits/ 64 <460000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+
                                ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                        compatible = "qcom,sm8350-adsp-pas";
                        reg = <0 0x17300000 0 0x100>;
 
-                       interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
                        compatible = "qcom,sm8350-cdsp-pas";
                        reg = <0 0x98900000 0 0x1400000>;
 
-                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
index 20153d08eddec87eec25a5ac2161d941b399beb2..a20d5d76af352ca6dc1aa7028cd6d094f72f35f2 100644 (file)
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8450/a730_zap.mbn";
+       };
+};
+
 &i2c9 {
        clock-frequency = <400000>;
        status = "okay";
index 1783fa78bdbcb5444f6f4d7ed9fe1ca029cc91c2..01e4dfc4babd2904eee95b3eaf4d63516d6c019a 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sm8450-camcc.h>
 #include <dt-bindings/clock/qcom,sm8450-dispcc.h>
+#include <dt-bindings/clock/qcom,sm8450-gpucc.h>
 #include <dt-bindings/clock/qcom,sm8450-videocc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
@@ -18,6 +19,7 @@
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sm8450.h>
+#include <dt-bindings/reset/qcom,sm8450-gpucc.h>
 #include <dt-bindings/soc/qcom,gpr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
                                 <&pcie0_phy>,
                                 <&pcie1_phy>,
                                 <0>,
-                                <&ufs_mem_phy_lanes 0>,
-                                <&ufs_mem_phy_lanes 1>,
-                                <&ufs_mem_phy_lanes 2>,
+                                <&ufs_mem_phy 0>,
+                                <&ufs_mem_phy 1>,
+                                <&ufs_mem_phy 2>,
                                 <&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
                        clock-names = "bi_tcxo",
                                      "sleep_clk",
                        };
                };
 
-               pcie0: pci@1c00000 {
+               rng: rng@10c3000 {
+                       compatible = "qcom,sm8450-trng", "qcom,trng";
+                       reg = <0 0x010c3000 0 0x1000>;
+               };
+
+               pcie0: pcie@1c00000 {
                        compatible = "qcom,pcie-sm8450-pcie0";
                        reg = <0 0x01c00000 0 0x3000>,
                              <0 0x60000000 0 0xf1d>,
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        compatible = "qcom,pcie-sm8450-pcie1";
                        reg = <0 0x01c08000 0 0x3000>,
                              <0 0x40000000 0 0xf1d>,
                        reg = <0x0 0x1fc0000 0x0 0x30000>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-730.1", "qcom,adreno";
+                       reg = <0x0 0x03d00000 0x0 0x40000>,
+                             <0x0 0x03d9e000 0x0 0x1000>,
+                             <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 0x400>,
+                                <&adreno_smmu 1 0x400>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       qcom,gmu = <&gmu>;
+
+                       status = "disabled";
+
+                       zap-shader {
+                               memory-region = <&gpu_micro_code_mem>;
+                       };
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-818000000 {
+                                       opp-hz = /bits/ 64 <818000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                               };
+
+                               opp-791000000 {
+                                       opp-hz = /bits/ 64 <791000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                               };
+
+                               opp-734000000 {
+                                       opp-hz = /bits/ 64 <734000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                               };
+
+                               opp-640000000 {
+                                       opp-hz = /bits/ 64 <640000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                               };
+
+                               opp-599000000 {
+                                       opp-hz = /bits/ 64 <599000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+
+                               opp-545000000 {
+                                       opp-hz = /bits/ 64 <545000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                               };
+
+                               opp-492000000 {
+                                       opp-hz = /bits/ 64 <492000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-421000000 {
+                                       opp-hz = /bits/ 64 <421000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                               };
+
+                               opp-350000000 {
+                                       opp-hz = /bits/ 64 <350000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-317000000 {
+                                       opp-hz = /bits/ 64 <317000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-285000000 {
+                                       opp-hz = /bits/ 64 <285000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                               };
+
+                               opp-220000000 {
+                                       opp-hz = /bits/ 64 <220000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-730.1", "qcom,adreno-gmu";
+                       reg = <0x0 0x03d6a000 0x0 0x35000>,
+                             <0x0 0x03d50000 0x0 0x10000>,
+                             <0x0 0x0b290000 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 0x400>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       operating-points-v2 = <&gmu_opp_table>;
+
+                       gmu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+                       };
+               };
+
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,sm8450-gpucc";
+                       reg = <0x0 0x03d90000 0x0 0xa000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,sm8450-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 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>,
+                                    <GIC_SPI 700 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&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 = "gmu",
+                                     "hub",
+                                     "hlos",
+                                     "bus",
+                                     "iface",
+                                     "ahb";
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+                       dma-coherent;
+               };
+
                usb_1_hsphy: phy@88e3000 {
                        compatible = "qcom,sm8450-usb-hs-phy",
                                     "qcom,usb-snps-hs-7nm-phy";
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&vamacro>;
                        clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_WSA2_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                                         <&q6prmcc LPASS_CLK_ID_WSA2_CORE_TX_2X_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>, <19200000>;
 
                        #clock-cells = <0>;
                        clock-output-names = "wsa2-mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wsa2_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr4: soundwire-controller@31f0000 {
+               swr4: soundwire@31f0000 {
                        compatible = "qcom,soundwire-v1.7.0";
                        reg = <0 0x031f0000 0 0x2000>;
                        interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "iface";
                        label = "WSA2";
 
+                       pinctrl-0 = <&wsa2_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <2>;
                        qcom,dout-ports = <6>;
 
                                 <&vamacro>;
                        clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
 
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                                         <&q6prmcc LPASS_CLK_ID_RX_CORE_MCLK2_2X_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>, <19200000>;
-
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&rx_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr1: soundwire-controller@3210000 {
+               swr1: soundwire@3210000 {
                        compatible = "qcom,soundwire-v1.7.0";
                        reg = <0 0x03210000 0 0x2000>;
                        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,din-ports = <0>;
                        qcom,dout-ports = <5>;
 
+                       pinctrl-0 = <&rx_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,ports-sinterval-low =      /bits/ 8 <0x03 0x1f 0x1f 0x07 0x00>;
                        qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x00>;
                        qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&vamacro>;
                        clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                                         <&q6prmcc LPASS_CLK_ID_RX_CORE_MCLK2_2X_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>, <19200000>;
 
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&tx_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
                                 <&vamacro>;
                        clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
 
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_WSA_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                                         <&q6prmcc LPASS_CLK_ID_WSA_CORE_TX_2X_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>, <19200000>;
-
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wsa_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr0: soundwire-controller@3250000 {
+               swr0: soundwire@3250000 {
                        compatible = "qcom,soundwire-v1.7.0";
                        reg = <0 0x03250000 0 0x2000>;
                        interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "iface";
                        label = "WSA";
 
+                       pinctrl-0 = <&wsa_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <2>;
                        qcom,dout-ports = <6>;
 
                        status = "disabled";
                };
 
-               swr2: soundwire-controller@33b0000 {
+               swr2: soundwire@33b0000 {
                        compatible = "qcom,soundwire-v1.7.0";
                        reg = <0 0x033b0000 0 0x2000>;
                        interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "core", "wakeup";
 
-                       clocks = <&vamacro>;
+                       clocks = <&txmacro>;
                        clock-names = "iface";
                        label = "TX";
 
+                       pinctrl-0 = <&tx_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <0>;
                        qcom,ports-sinterval-low =      /bits/ 8 <0x01 0x01 0x03 0x03>;
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&q6prmcc LPASS_CLK_ID_RX_CORE_MCLK2_2X_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
                        clock-names = "mclk", "macro", "dcodec", "npl";
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>;
 
                        #clock-cells = <0>;
                        clock-output-names = "fsgen";
                                     "jedec,ufs-2.0";
                        reg = <0 0x01d84000 0 0x3000>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
+                       phys = <&ufs_mem_phy>;
                        phy-names = "ufsphy";
                        lanes-per-direction = <2>;
                        #reset-cells = <1>;
 
                ufs_mem_phy: phy@1d87000 {
                        compatible = "qcom,sm8450-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0x1c4>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       reg = <0 0x01d87000 0 0x1000>;
+
                        clock-names = "ref", "ref_aux", "qref";
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
 
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
-                       status = "disabled";
 
-                       ufs_mem_phy_lanes: phy@1d87400 {
-                               reg = <0 0x01d87400 0 0x188>,
-                                     <0 0x01d87600 0 0x200>,
-                                     <0 0x01d87c00 0 0x200>,
-                                     <0 0x01d87800 0 0x188>,
-                                     <0 0x01d87a00 0 0x200>;
-                               #clock-cells = <1>;
-                               #phy-cells = <0>;
-                       };
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
                };
 
                ice: crypto@1d88000 {
index 9a70875028b7ecdcf890d3c6cb87d6d074f1f342..c1135ad5fa696f5b2eb81a77819d9d55a23cbd70 100644 (file)
@@ -10,6 +10,7 @@
 #include "pm8010.dtsi"
 #include "pm8550.dtsi"
 #include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
 #include "pm8550ve.dtsi"
 #include "pm8550vs.dtsi"
 #include "pmk8550.dtsi"
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
        };
+
+       regulators-6 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "m";
+
+               vdd-l1-l2-supply = <&vreg_s4g_1p3>;
+               vdd-l3-l4-supply = <&vreg_bob2>;
+               vdd-l5-supply = <&vreg_s6g_1p8>;
+               vdd-l6-supply = <&vreg_s6g_1p8>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1m_1p056: ldo1 {
+                       regulator-name = "vreg_l1m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2m_1p056: ldo2 {
+                       regulator-name = "vreg_l2m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3m_2p8: ldo3 {
+                       regulator-name = "vreg_l3m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p8: ldo4 {
+                       regulator-name = "vreg_l4m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5m_1p8: ldo5 {
+                       regulator-name = "vreg_l5m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_1p8: ldo6 {
+                       regulator-name = "vreg_l6m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p9: ldo7 {
+                       regulator-name = "vreg_l7m_2p9";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "n";
+
+               vdd-l1-l2-supply = <&vreg_s4g_1p3>;
+               vdd-l3-l4-supply = <&vreg_bob2>;
+               vdd-l5-supply = <&vreg_s6g_1p8>;
+               vdd-l6-supply = <&vreg_bob1>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2n_1p1: ldo2 {
+                       regulator-name = "vreg_l2n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3n_2p8: ldo3 {
+                       regulator-name = "vreg_l3n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4n_2p8: ldo4 {
+                       regulator-name = "vreg_l4n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5n_1p8: ldo5 {
+                       regulator-name = "vreg_l5n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6n_3p3: ldo6 {
+                       regulator-name = "vreg_l6n_3p3";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7n_2p96: ldo7 {
+                       regulator-name = "vreg_l7n_2p96";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8550/a740_zap.mbn";
+       };
 };
 
 &i2c_master_hub_0 {
index eef811def39bcf88cdbaed763fcfe2b9954a1104..d401d63e5c4d2aff90a9845efa757ce584aae538 100644 (file)
@@ -11,6 +11,7 @@
 #include "pm8010.dtsi"
 #include "pm8550.dtsi"
 #include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
 #include "pm8550ve.dtsi"
 #include "pm8550vs.dtsi"
 #include "pmk8550.dtsi"
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
        };
+
+       regulators-6 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "m";
+
+               vdd-l1-l2-supply = <&vreg_s4g_1p25>;
+               vdd-l3-l4-supply = <&vreg_bob2>;
+               vdd-l5-supply = <&vreg_s6g_1p86>;
+               vdd-l6-supply = <&vreg_s6g_1p86>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1m_1p056: ldo1 {
+                       regulator-name = "vreg_l1m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2m_1p056: ldo2 {
+                       regulator-name = "vreg_l2m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3m_2p8: ldo3 {
+                       regulator-name = "vreg_l3m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p8: ldo4 {
+                       regulator-name = "vreg_l4m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5m_1p8: ldo5 {
+                       regulator-name = "vreg_l5m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_1p8: ldo6 {
+                       regulator-name = "vreg_l6m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p9: ldo7 {
+                       regulator-name = "vreg_l7m_2p9";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "n";
+
+               vdd-l1-l2-supply = <&vreg_s4g_1p25>;
+               vdd-l3-l4-supply = <&vreg_bob2>;
+               vdd-l5-supply = <&vreg_s6g_1p86>;
+               vdd-l6-supply = <&vreg_bob1>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2n_1p1: ldo2 {
+                       regulator-name = "vreg_l2n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3n_2p8: ldo3 {
+                       regulator-name = "vreg_l3n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4n_2p8: ldo4 {
+                       regulator-name = "vreg_l4n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5n_1p8: ldo5 {
+                       regulator-name = "vreg_l5n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6n_3p3: ldo6 {
+                       regulator-name = "vreg_l6n_3p3";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7n_2p96: ldo7 {
+                       regulator-name = "vreg_l7n_2p96";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
 };
 
 &i2c_master_hub_0 {
        };
 };
 
+&ipa {
+       qcom,gsi-loader = "self";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sm8550/ipa_fws.mbn";
+       status = "okay";
+};
+
 &gcc {
        clocks = <&bi_tcxo_div2>, <&sleep_clk>,
                 <&pcie0_phy>,
                 <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8550/a740_zap.mbn";
+       };
+};
+
 &lpass_tlmm {
        spkr_1_sd_n_active: spkr-1-sd-n-active-state {
                pins = "gpio17";
index 7b9ddde0b2c9a1700fa93d95cb17346088880a93..ee1ba5a8c8fc2fc25345f5b356b9f9f410f70b6a 100644 (file)
                                compatible = "arm,idle-state";
                                idle-state-name = "silver-rail-power-collapse";
                                arm,psci-suspend-param = <0x40000004>;
-                               entry-latency-us = <800>;
+                               entry-latency-us = <550>;
                                exit-latency-us = <750>;
-                               min-residency-us = <4090>;
+                               min-residency-us = <6700>;
                                local-timer-stop;
                        };
 
                                idle-state-name = "gold-rail-power-collapse";
                                arm,psci-suspend-param = <0x40000004>;
                                entry-latency-us = <600>;
-                               exit-latency-us = <1550>;
-                               min-residency-us = <4791>;
+                               exit-latency-us = <1300>;
+                               min-residency-us = <8136>;
+                               local-timer-stop;
+                       };
+
+                       PRIME_CPU_SLEEP_0: cpu-sleep-2-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "goldplus-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <500>;
+                               exit-latency-us = <1350>;
+                               min-residency-us = <7480>;
                                local-timer-stop;
                        };
                };
                        CLUSTER_SLEEP_0: cluster-sleep-0 {
                                compatible = "domain-idle-state";
                                arm,psci-suspend-param = <0x41000044>;
-                               entry-latency-us = <1050>;
-                               exit-latency-us = <2500>;
-                               min-residency-us = <5309>;
+                               entry-latency-us = <750>;
+                               exit-latency-us = <2350>;
+                               min-residency-us = <9144>;
                        };
 
                        CLUSTER_SLEEP_1: cluster-sleep-1 {
                                compatible = "domain-idle-state";
                                arm,psci-suspend-param = <0x4100c344>;
-                               entry-latency-us = <2700>;
-                               exit-latency-us = <3500>;
-                               min-residency-us = <13959>;
+                               entry-latency-us = <2800>;
+                               exit-latency-us = <4400>;
+                               min-residency-us = <10150>;
                        };
                };
        };
        firmware {
                scm: scm {
                        compatible = "qcom,scm-sm8550", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x19000>;
                        interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
                };
        };
                CPU_PD7: power-domain-cpu7 {
                        #power-domain-cells = <0>;
                        power-domains = <&CLUSTER_PD>;
-                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+                       domain-idle-states = <&PRIME_CPU_SLEEP_0>;
                };
 
                CLUSTER_PD: power-domain-cluster {
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               pcie0: pci@1c00000 {
+               rng: rng@10c3000 {
+                       compatible = "qcom,sm8550-trng", "qcom,trng";
+                       reg = <0 0x010c3000 0 0x1000>;
+               };
+
+               pcie0: pcie@1c00000 {
                        device_type = "pci";
                        compatible = "qcom,pcie-sm8550";
                        reg = <0 0x01c00000 0 0x3000>,
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        device_type = "pci";
                        compatible = "qcom,pcie-sm8550";
                        reg = <0x0 0x01c08000 0x0 0x3000>,
                        #reset-cells = <1>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-43050a01", "qcom,adreno";
+                       reg = <0x0 0x03d00000 0x0 0x40000>,
+                             <0x0 0x03d9e000 0x0 0x1000>,
+                             <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-680000000 {
+                                       opp-hz = /bits/ 64 <680000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+
+                               opp-615000000 {
+                                       opp-hz = /bits/ 64 <615000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                               };
+
+                               opp-550000000 {
+                                       opp-hz = /bits/ 64 <550000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-475000000 {
+                                       opp-hz = /bits/ 64 <475000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                               };
+
+                               opp-401000000 {
+                                       opp-hz = /bits/ 64 <401000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-348000000 {
+                                       opp-hz = /bits/ 64 <348000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                               };
+
+                               opp-295000000 {
+                                       opp-hz = /bits/ 64 <295000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                               };
+
+                               opp-220000000 {
+                                       opp-hz = /bits/ 64 <220000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-740.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_CC_CX_GDSC>,
+                                       <&gpucc GPU_CC_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-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+                       };
+               };
+
                gpucc: clock-controller@3d90000 {
                        compatible = "qcom,sm8550-gpucc";
                        reg = <0 0x03d90000 0 0xa000>;
                        #power-domain-cells = <1>;
                };
 
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,sm8550-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_CC_CX_GDSC>;
+                       dma-coherent;
+               };
+
+               ipa: ipa@3f40000 {
+                       compatible = "qcom,sm8550-ipa";
+
+                       iommus = <&apps_smmu 0x4a0 0x0>,
+                                <&apps_smmu 0x4a2 0x0>;
+                       reg = <0 0x3f40000 0 0x10000>,
+                             <0 0x3f50000 0 0x5000>,
+                             <0 0x3e04000 0 0xfc000>;
+                       reg-names = "ipa-reg",
+                                   "ipa-shared",
+                                   "gsi";
+
+                       interrupts-extended = <&intc GIC_SPI 654 IRQ_TYPE_EDGE_RISING>,
+                                             <&intc GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ipa",
+                                         "gsi",
+                                         "ipa-clock-query",
+                                         "ipa-setup-ready";
+
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
+                       clock-names = "core";
+
+                       interconnects = <&aggre2_noc MASTER_IPA 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_IPA_CFG 0>;
+                       interconnect-names = "memory",
+                                            "config";
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&ipa_smp2p_out 0>,
+                                          <&ipa_smp2p_out 1>;
+                       qcom,smem-state-names = "ipa-clock-enabled-valid",
+                                               "ipa-clock-enabled";
+
+                       status = "disabled";
+               };
+
                remoteproc_mpss: remoteproc@4080000 {
                        compatible = "qcom,sm8550-mpss-pas";
                        reg = <0x0 0x04080000 0x0 0x4040>;
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&lpass_vamacro>;
                        clock-names = "mclk", "macro", "dcodec", "fsgen";
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_WSA2_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>;
 
                        #clock-cells = <0>;
                        clock-output-names = "wsa2-mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wsa2_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr3: soundwire-controller@6ab0000 {
+               swr3: soundwire@6ab0000 {
                        compatible = "qcom,soundwire-v2.0.0";
                        reg = <0 0x06ab0000 0 0x10000>;
                        interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "iface";
                        label = "WSA2";
 
+                       pinctrl-0 = <&wsa2_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <9>;
 
                                 <&lpass_vamacro>;
                        clock-names = "mclk", "macro", "dcodec", "fsgen";
 
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>;
-
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&rx_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr1: soundwire-controller@6ad0000 {
+               swr1: soundwire@6ad0000 {
                        compatible = "qcom,soundwire-v2.0.0";
                        reg = <0 0x06ad0000 0 0x10000>;
                        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "iface";
                        label = "RX";
 
-                       qcom,din-ports = <0>;
-                       qcom,dout-ports = <10>;
+                       pinctrl-0 = <&rx_swr_active>;
+                       pinctrl-names = "default";
+
+                       qcom,din-ports = <1>;
+                       qcom,dout-ports = <11>;
 
-                       qcom,ports-sinterval =          /bits/ 16 <0x03 0x3f 0x1f 0x07 0x00 0x18f 0xff 0xff 0xff 0xff>;
-                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x00 0x00 0xff 0xff 0xff 0xff>;
-                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00 0x00 0xff 0xff 0xff 0xff>;
-                       qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff>;
-                       qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff>;
-                       qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff 0x0f 0xff 0xff 0xff 0xff>;
-                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff 0x00 0xff 0xff 0xff 0xff>;
-                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0x00 0x00 0xff 0xff 0xff 0xff>;
-                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff>;
+                       qcom,ports-sinterval =          /bits/ 16 <0x03 0x3f 0x1f 0x07 0x00 0x18f 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff 0x0f 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff 0x00 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff>;
 
                        #address-cells = <2>;
                        #size-cells = <0>;
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&lpass_vamacro>;
                        clock-names = "mclk", "macro", "dcodec", "fsgen";
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-
-                       assigned-clock-rates = <19200000>;
 
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&tx_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
                                 <&lpass_vamacro>;
                        clock-names = "mclk", "macro", "dcodec", "fsgen";
 
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_WSA_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>;
-
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wsa_swr_active>;
                        #sound-dai-cells = <1>;
                };
 
-               swr0: soundwire-controller@6b10000 {
+               swr0: soundwire@6b10000 {
                        compatible = "qcom,soundwire-v2.0.0";
                        reg = <0 0x06b10000 0 0x10000>;
                        interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "iface";
                        label = "WSA";
 
+                       pinctrl-0 = <&wsa_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <9>;
 
                        status = "disabled";
                };
 
-               swr2: soundwire-controller@6d30000 {
+               swr2: soundwire@6d30000 {
                        compatible = "qcom,soundwire-v2.0.0";
                        reg = <0 0x06d30000 0 0x10000>;
                        interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "core", "wakeup";
-                       clocks = <&lpass_vamacro>;
+                       clocks = <&lpass_txmacro>;
                        clock-names = "iface";
                        label = "TX";
 
+                       pinctrl-0 = <&tx_swr_active>;
+                       pinctrl-names = "default";
+
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <0>;
                        qcom,ports-sinterval-low =      /bits/ 8 <0x01 0x01 0x03 0x03>;
                                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
                        clock-names = "mclk", "macro", "dcodec";
 
-                       assigned-clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       assigned-clock-rates = <19200000>;
-
                        #clock-cells = <0>;
                        clock-output-names = "fsgen";
                        #sound-dai-cells = <1>;
 
                        interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 15 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>;
+                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq",
                                          "ss_phy_irq",
                                          "dm_hs_phy_irq",
diff --git a/src/arm64/qcom/sm8650-mtp.dts b/src/arm64/qcom/sm8650-mtp.dts
new file mode 100644 (file)
index 0000000..be133a3
--- /dev/null
@@ -0,0 +1,727 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8650.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 8
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+#include "pmr735d_a.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SM8650 MTP";
+       compatible = "qcom,sm8650-mtp", "qcom,sm8650";
+
+       aliases {
+               serial0 = &uart15;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8650-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+
+               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_1_dwc3_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       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";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob1>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l11-supply = <&vreg_s1c_1p2>;
+               vdd-l12-supply = <&vreg_s6c_1p8>;
+               vdd-l15-supply = <&vreg_s6c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               qcom,pmic-id = "b";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2720000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_2p8: ldo16 {
+                       regulator-name = "vreg_l16b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s1c_1p2>;
+               vdd-l2-supply = <&vreg_s1c_1p2>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "c";
+
+               vreg_s1c_1p2: smps1 {
+                       regulator-name = "vreg_s1c_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1348000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2c_0p8: smps2 {
+                       regulator-name = "vreg_s2c_0p8";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3c_0p9: smps3 {
+                       regulator-name = "vreg_s3c_0p9";
+                       regulator-min-microvolt = <976000>;
+                       regulator-max-microvolt = <1064000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4c_1p2: smps4 {
+                       regulator-name = "vreg_s4c_1p2";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1280000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5c_0p7: smps5 {
+                       regulator-name = "vreg_s5c_0p7";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6c_1p8: smps6 {
+                       regulator-name = "vreg_s6c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       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_l3c_1p2: ldo3 {
+                       regulator-name = "vreg_l3c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       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>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "d";
+
+               vreg_l1d_0p88: ldo1 {
+                       regulator-name = "vreg_l1d_0p88";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "e";
+
+               vreg_l3e_0p9: ldo3 {
+                       regulator-name = "vreg_l3e_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "g";
+
+               vreg_l1g_0p91: ldo1 {
+                       regulator-name = "vreg_l1g_0p91";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3g_0p91: ldo3 {
+                       regulator-name = "vreg_l3g_0p91";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l2-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "i";
+
+               vreg_s4i_0p85: smps4 {
+                       regulator-name = "vreg_s4i_0p85";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_0p88: ldo1 {
+                       regulator-name = "vreg_l1i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_0p88: ldo2 {
+                       regulator-name = "vreg_l2i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_1p2: ldo3 {
+                       regulator-name = "vreg_l3i_0p91";
+                       regulator-min-microvolt = <1200000>;
+                       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>;
+               };
+       };
+};
+
+&dispcc {
+       status = "okay";
+};
+
+&lpass_tlmm {
+       spkr_1_sd_n_active: spkr-1-sd-n-active-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+
+       panel@0 {
+               compatible = "visionox,vtdr6130";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+               vddio-supply = <&vreg_l12b_1p8>;
+               vci-supply = <&vreg_l13b_3p0>;
+               vdd-supply = <&vreg_l11b_1p2>;
+
+               pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync_active>;
+               pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync_suspend>;
+               pinctrl-names = "default", "sleep";
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1i_0p88>;
+
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
+&pcie_1_phy_aux_clk {
+       clock-frequency = <1000>;
+};
+
+&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 = <&vreg_l1i_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie1_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l3e_0p9>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+       vdda-qref-supply = <&vreg_l1i_0p88>;
+
+       status = "okay";
+};
+
+&pm8550_gpios {
+       sdc2_card_det_n: sdc2-card-det-state {
+               pins = "gpio12";
+               function = "normal";
+               bias-pull-up;
+               input-enable;
+               output-disable;
+               power-source = <1>; /* 1.8 V */
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_1p8>;
+       vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8650/adsp.mbn",
+                       "qcom/sm8650/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8650/cdsp.mbn",
+                       "qcom/sm8650/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8650/modem.mbn",
+                       "qcom/sm8650/modem_dtb.mbn";
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       pinctrl-0 = <&sdc2_default>, <&sdc2_card_det_n>;
+       pinctrl-1 = <&sdc2_sleep>, <&sdc2_card_det_n>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&swr0 {
+       status = "okay";
+
+       /* WSA8845, Speaker Left */
+       left_spkr: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               pinctrl-0 = <&spkr_1_sd_n_active>;
+               pinctrl-names = "default";
+               powerdown-gpios = <&lpass_tlmm 21 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l3c_1p2>;
+       };
+
+       /* WSA8845, Speaker Right */
+       right_spkr: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               pinctrl-0 = <&spkr_2_sd_n_active>;
+               pinctrl-names = "default";
+               powerdown-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l3c_1p2>;
+       };
+};
+
+&tlmm {
+       /* Reserved I/Os for NFC */
+       gpio-reserved-ranges = <32 8>, <74 1>;
+
+       disp0_reset_n_active: disp0-reset-n-active-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       disp0_reset_n_suspend: disp0-reset-n-suspend-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       mdp_vsync_active: mdp-vsync-active-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       mdp_vsync_suspend: mdp-vsync-suspend-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       spkr_2_sd_n_active: spkr-2-sd-n-active-state {
+               pins = "gpio77";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+};
+
+&uart15 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1300000>;
+       vccq-supply = <&vreg_l1c_1p2>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1d_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+/*
+ * DPAUX -> WCD9395 -> USB_SBU -> USB-C
+ * eUSB2 DP/DM -> PM85550HS -> eUSB2 DP/DM -> USB-C
+ * USB SS -> USB-C
+ */
+
+&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 = <&pmic_glink_ss_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l1i_0p88>;
+       vdda12-supply = <&vreg_l3i_1p2>;
+
+       phys = <&pm8550b_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&vreg_l3i_1p2>;
+       vdda-pll-supply = <&vreg_l3g_0p91>;
+
+       status = "okay";
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
diff --git a/src/arm64/qcom/sm8650-qrd.dts b/src/arm64/qcom/sm8650-qrd.dts
new file mode 100644 (file)
index 0000000..b9151c2
--- /dev/null
@@ -0,0 +1,811 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8650.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 8
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+#include "pmr735d_a.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SM8650 QRD";
+       compatible = "qcom,sm8650-qrd", "qcom,sm8650";
+
+       aliases {
+               serial0 = &uart15;
+               serial1 = &uart14;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&volume_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8650-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+
+               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_1_dwc3_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       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";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob1>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l11-supply = <&vreg_s1c_1p2>;
+               vdd-l12-supply = <&vreg_s6c_1p8>;
+               vdd-l15-supply = <&vreg_s6c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               qcom,pmic-id = "b";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2720000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_2p8: ldo16 {
+                       regulator-name = "vreg_l16b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s1c_1p2>;
+               vdd-l2-supply = <&vreg_s1c_1p2>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "c";
+
+               vreg_s1c_1p2: smps1 {
+                       regulator-name = "vreg_s1c_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1348000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2c_0p8: smps2 {
+                       regulator-name = "vreg_s2c_0p8";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3c_0p9: smps3 {
+                       regulator-name = "vreg_s3c_0p9";
+                       regulator-min-microvolt = <976000>;
+                       regulator-max-microvolt = <1064000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4c_1p2: smps4 {
+                       regulator-name = "vreg_s4c_1p2";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1280000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5c_0p7: smps5 {
+                       regulator-name = "vreg_s5c_0p7";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6c_1p8: smps6 {
+                       regulator-name = "vreg_s6c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       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_l3c_1p2: ldo3 {
+                       regulator-name = "vreg_l3c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       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>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "d";
+
+               vreg_l1d_0p88: ldo1 {
+                       regulator-name = "vreg_l1d_0p88";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "e";
+
+               vreg_l3e_0p9: ldo3 {
+                       regulator-name = "vreg_l3e_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "g";
+
+               vreg_l1g_0p91: ldo1 {
+                       regulator-name = "vreg_l1g_0p91";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3g_0p91: ldo3 {
+                       regulator-name = "vreg_l3g_0p91";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l2-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "i";
+
+               vreg_s4i_0p85: smps4 {
+                       regulator-name = "vreg_s4i_0p85";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_0p88: ldo1 {
+                       regulator-name = "vreg_l1i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_0p88: ldo2 {
+                       regulator-name = "vreg_l2i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_1p2: ldo3 {
+                       regulator-name = "vreg_l3i_0p91";
+                       regulator-min-microvolt = <1200000>;
+                       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>;
+               };
+       };
+};
+
+&dispcc {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&ipa {
+       qcom,gsi-loader = "self";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sm8650/ipa_fws.mbn";
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+
+       panel@0 {
+               compatible = "visionox,vtdr6130";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+               vddio-supply = <&vreg_l12b_1p8>;
+               vci-supply = <&vreg_l13b_3p0>;
+               vdd-supply = <&vreg_l11b_1p2>;
+
+               pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync_active>;
+               pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync_suspend>;
+               pinctrl-names = "default", "sleep";
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1i_0p88>;
+
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
+&pcie_1_phy_aux_clk {
+       clock-frequency = <1000>;
+};
+
+&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 = <&vreg_l1i_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&pm8550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <0>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <2>, <3>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <1>;
+       };
+};
+
+&pm8550_gpios {
+       volume_up_n: volume-up-n-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-pull-up;
+               input-enable;
+               power-source = <1>;
+       };
+};
+
+&pm8550_pwm {
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_1p8>;
+       vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pmk8550_rtc {
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8650/adsp.mbn",
+                       "qcom/sm8650/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8650/cdsp.mbn",
+                       "qcom/sm8650/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8650/modem.mbn",
+                       "qcom/sm8650/modem_dtb.mbn";
+
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&spi4 {
+       status = "okay";
+
+       touchscreen@0 {
+               compatible = "goodix,gt9916";
+               reg = <0>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <162 IRQ_TYPE_LEVEL_LOW>;
+
+               reset-gpios = <&tlmm 161 GPIO_ACTIVE_LOW>;
+
+               avdd-supply = <&vreg_l14b_3p2>;
+
+               spi-max-frequency = <1000000>;
+
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <2400>;
+
+               pinctrl-0 = <&ts_irq>, <&ts_reset>;
+               pinctrl-names = "default";
+       };
+};
+
+&tlmm {
+       /* Reserved I/Os for NFC */
+       gpio-reserved-ranges = <32 8>, <74 1>;
+
+       bt_default: bt-default-state {
+               bt-en-pins {
+                       pins = "gpio17";
+                       function = "gpio";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               sw-ctrl-pins {
+                       pins = "gpio18";
+                       function = "gpio";
+                       bias-pull-down;
+               };
+       };
+
+       disp0_reset_n_active: disp0-reset-n-active-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       disp0_reset_n_suspend: disp0-reset-n-suspend-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       mdp_vsync_active: mdp-vsync-active-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       mdp_vsync_suspend: mdp-vsync-suspend-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       ts_irq: ts-irq-state {
+               pins = "gpio161";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+               output-disable;
+       };
+
+       ts_reset: ts-reset-state {
+               pins = "gpio162";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
+
+&uart14 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn7850-bt";
+
+               clocks = <&rpmhcc RPMH_RF_CLK1>;
+
+               vddio-supply = <&vreg_l3c_1p2>;
+               vddaon-supply = <&vreg_l15b_1p8>;
+               vdddig-supply = <&vreg_s3c_0p9>;
+               vddrfa0p8-supply = <&vreg_s3c_0p9>;
+               vddrfa1p2-supply = <&vreg_s1c_1p2>;
+               vddrfa1p9-supply = <&vreg_s6c_1p8>;
+
+               max-speed = <3200000>;
+
+               enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+               swctrl-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&bt_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart15 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1300000>;
+       vccq-supply = <&vreg_l1c_1p2>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1d_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+/*
+ * DPAUX -> WCD9395 -> USB_SBU -> USB-C
+ * eUSB2 DP/DM -> PM85550HS -> eUSB2 DP/DM -> WCD9395 -> USB-C
+ * USB SS -> NB7VPQ904MMUTWG -> USB-C
+ */
+
+&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 = <&pmic_glink_ss_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l1i_0p88>;
+       vdda12-supply = <&vreg_l3i_1p2>;
+
+       phys = <&pm8550b_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&vreg_l3i_1p2>;
+       vdda-pll-supply = <&vreg_l3g_0p91>;
+
+       status = "okay";
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
diff --git a/src/arm64/qcom/sm8650.dtsi b/src/arm64/qcom/sm8650.dtsi
new file mode 100644 (file)
index 0000000..2df7712
--- /dev/null
@@ -0,0 +1,6013 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm8650-dispcc.h>
+#include <dt-bindings/clock/qcom,sm8650-gcc.h>
+#include <dt-bindings/clock/qcom,sm8650-gpucc.h>
+#include <dt-bindings/clock/qcom,sm8650-tcsr.h>
+#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,sm8650-rpmh.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/mailbox/qcom-ipcc.h>
+#include <dt-bindings/phy/phy-qcom-qmp.h>
+#include <dt-bindings/power/qcom,rpmhpd.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/reset/qcom,sm8650-gpucc.h>
+#include <dt-bindings/soc/qcom,gpr.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       chosen { };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+               };
+
+               bi_tcxo_div2: bi-tcxo-div2-clk {
+                       compatible = "fixed-factor-clock";
+                       #clock-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-mult = <1>;
+                       clock-div = <2>;
+               };
+
+               bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
+                       compatible = "fixed-factor-clock";
+                       #clock-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK_A>;
+                       clock-mult = <1>;
+                       clock-div = <2>;
+               };
+
+               pcie_1_phy_aux_clk: pcie-1-phy-aux-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a520";
+                       reg = <0 0>;
+
+                       clocks = <&cpufreq_hw 0>;
+
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
+
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+
+                       #cooling-cells = <2>;
+
+                       L2_0: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+
+                               L3_0: l3-cache {
+                                       compatible = "cache";
+                                       cache-level = <3>;
+                                       cache-unified;
+                               };
+                       };
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a520";
+                       reg = <0 0x100>;
+
+                       clocks = <&cpufreq_hw 0>;
+
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
+
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+
+                       #cooling-cells = <2>;
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0 0x200>;
+
+                       clocks = <&cpufreq_hw 3>;
+
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_200>;
+                       capacity-dmips-mhz = <1792>;
+                       dynamic-power-coefficient = <238>;
+
+                       qcom,freq-domain = <&cpufreq_hw 3>;
+
+                       #cooling-cells = <2>;
+
+                       L2_200: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0 0x300>;
+
+                       clocks = <&cpufreq_hw 3>;
+
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_200>;
+                       capacity-dmips-mhz = <1792>;
+                       dynamic-power-coefficient = <238>;
+
+                       qcom,freq-domain = <&cpufreq_hw 3>;
+
+                       #cooling-cells = <2>;
+               };
+
+               CPU4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0 0x400>;
+
+                       clocks = <&cpufreq_hw 3>;
+
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_400>;
+                       capacity-dmips-mhz = <1792>;
+                       dynamic-power-coefficient = <238>;
+
+                       qcom,freq-domain = <&cpufreq_hw 3>;
+
+                       #cooling-cells = <2>;
+
+                       L2_400: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0 0x500>;
+
+                       clocks = <&cpufreq_hw 1>;
+
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_500>;
+                       capacity-dmips-mhz = <1792>;
+                       dynamic-power-coefficient = <238>;
+
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+
+                       #cooling-cells = <2>;
+
+                       L2_500: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0 0x600>;
+
+                       clocks = <&cpufreq_hw 1>;
+
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_600>;
+                       capacity-dmips-mhz = <1792>;
+                       dynamic-power-coefficient = <238>;
+
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+
+                       #cooling-cells = <2>;
+
+                       L2_600: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-x4";
+                       reg = <0 0x700>;
+
+                       clocks = <&cpufreq_hw 2>;
+
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&L2_700>;
+                       capacity-dmips-mhz = <1894>;
+                       dynamic-power-coefficient = <588>;
+
+                       qcom,freq-domain = <&cpufreq_hw 2>;
+
+                       #cooling-cells = <2>;
+
+                       L2_700: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&L3_0>;
+                       };
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&CPU0>;
+                               };
+
+                               core1 {
+                                       cpu = <&CPU1>;
+                               };
+
+                               core2 {
+                                       cpu = <&CPU2>;
+                               };
+
+                               core3 {
+                                       cpu = <&CPU3>;
+                               };
+
+                               core4 {
+                                       cpu = <&CPU4>;
+                               };
+
+                               core5 {
+                                       cpu = <&CPU5>;
+                               };
+
+                               core6 {
+                                       cpu = <&CPU6>;
+                               };
+
+                               core7 {
+                                       cpu = <&CPU7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       SILVER_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "silver-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <550>;
+                               exit-latency-us = <750>;
+                               min-residency-us = <6700>;
+                               local-timer-stop;
+                       };
+
+                       GOLD_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <600>;
+                               exit-latency-us = <1300>;
+                               min-residency-us = <8136>;
+                               local-timer-stop;
+                       };
+
+                       GOLD_PLUS_CPU_SLEEP_0: cpu-sleep-2-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-plus-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <500>;
+                               exit-latency-us = <1350>;
+                               min-residency-us = <7480>;
+                               local-timer-stop;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <750>;
+                               exit-latency-us = <2350>;
+                               min-residency-us = <9144>;
+                       };
+
+                       CLUSTER_SLEEP_1: cluster-sleep-1 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x4100c344>;
+                               entry-latency-us = <2800>;
+                               exit-latency-us = <4400>;
+                               min-residency-us = <10150>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-sm8650", "qcom,scm";
+                       interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+               };
+       };
+
+       clk_virt: interconnect-0 {
+               compatible = "qcom,sm8650-clk-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       mc_virt: interconnect-1 {
+               compatible = "qcom,sm8650-mc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       memory@a0000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0 0xa0000000 0 0>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&SILVER_CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&SILVER_CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&SILVER_CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&GOLD_PLUS_CPU_SLEEP_0>;
+               };
+
+               CLUSTER_PD: power-domain-cluster {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_0>,
+                                            <&CLUSTER_SLEEP_1>;
+               };
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hyp_mem: hyp@80000000 {
+                       reg = <0 0x80000000 0 0xe00000>;
+                       no-map;
+               };
+
+               cpusys_vm_mem: cpusys-vm@80e00000 {
+                       reg = <0 0x80e00000 0 0x400000>;
+                       no-map;
+               };
+
+               /* Merged xbl_dtlog, xbl_ramdump and aop_image regions */
+               xbl_dt_log_merged_mem: xbl-dt-log-merged@81a00000 {
+                       reg = <0 0x81a00000 0 0x260000>;
+                       no-map;
+               };
+
+               aop_cmd_db_mem: aop-cmd-db@81c60000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0 0x81c60000 0 0x20000>;
+                       no-map;
+               };
+
+               /* Merged aop_config, tme_crash_dump, tme_log and uefi_log regions */
+               aop_tme_uefi_merged_mem: aop-tme-uefi-merged@81c80000 {
+                       reg = <0 0x81c80000 0 0x74000>;
+                       no-map;
+               };
+
+               /* Secdata region can be reused by apps */
+
+               smem: smem@81d00000 {
+                       compatible = "qcom,smem";
+                       reg = <0 0x81d00000 0 0x200000>;
+                       hwlocks = <&tcsr_mutex 3>;
+                       no-map;
+               };
+
+               adsp_mhi_mem: adsp-mhi@81f00000 {
+                       reg = <0 0x81f00000 0 0x20000>;
+                       no-map;
+               };
+
+               pvmfw_mem: pvmfw@824a0000 {
+                       reg = <0 0x824a0000 0 0x100000>;
+                       no-map;
+               };
+
+               global_sync_mem: global-sync@82600000 {
+                       reg = <0 0x82600000 0 0x100000>;
+                       no-map;
+               };
+
+               tz_stat_mem: tz-stat@82700000 {
+                       reg = <0 0x82700000 0 0x100000>;
+                       no-map;
+               };
+
+               qdss_mem: qdss@82800000 {
+                       reg = <0 0x82800000 0 0x2000000>;
+                       no-map;
+               };
+
+               mpss_dsm_mem: mpss-dsm@86b00000 {
+                       reg = <0 0x86b00000 0 0x4900000>;
+                       no-map;
+               };
+
+               mpss_dsm_mem_2: mpss-dsm-2@8b400000 {
+                       reg = <0 0x8b400000 0 0x800000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@8bc00000 {
+                       reg = <0 0x8bc00000 0 0xf400000>;
+                       no-map;
+               };
+
+               q6_mpss_dtb_mem: q6-mpss-dtb@9b000000 {
+                       reg = <0 0x9b000000 0 0x80000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw@9b080000 {
+                       reg = <0 0x9b080000 0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi@9b090000 {
+                       reg = <0 0x9b090000 0 0xa000>;
+                       no-map;
+               };
+
+               gpu_micro_code_mem: gpu-micro-code@9b09a000 {
+                       reg = <0 0x9b09a000 0 0x2000>;
+                       no-map;
+               };
+
+               spss_region_mem: spss@9b0a0000 {
+                       reg = <0 0x9b0a0000 0 0x1e0000>;
+                       no-map;
+               };
+
+               /* First part of the "SPU secure shared memory" region */
+               spu_tz_shared_mem: spu-tz-shared@9b280000 {
+                       reg = <0 0x9b280000 0 0x60000>;
+                       no-map;
+               };
+
+               /* Second part of the "SPU secure shared memory" region */
+               spu_modem_shared_mem: spu-modem-shared@9b2e0000 {
+                       reg = <0 0x9b2e0000 0 0x20000>;
+                       no-map;
+               };
+
+               camera_mem: camera@9b300000 {
+                       reg = <0 0x9b300000 0 0x800000>;
+                       no-map;
+               };
+
+               video_mem: video@9bb00000 {
+                       reg = <0 0x9bb00000 0 0x800000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp@9c300000 {
+                       reg = <0 0x9c300000 0 0x700000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@9ca00000 {
+                       reg = <0 0x9ca00000 0 0x1400000>;
+                       no-map;
+               };
+
+               q6_cdsp_dtb_mem: q6-cdsp-dtb@9de00000 {
+                       reg = <0 0x9de00000 0 0x80000>;
+                       no-map;
+               };
+
+               q6_adsp_dtb_mem: q6-adsp-dtb@9de80000 {
+                       reg = <0 0x9de80000 0 0x80000>;
+                       no-map;
+               };
+
+               adspslpi_mem: adspslpi@9df00000 {
+                       reg = <0 0x9df00000 0 0x4080000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs@d7c00000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0 0xd7c00000 0 0x400000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+
+               /* Merged tz_reserved, xbl_sc, cpucp_fw and qtee regions */
+               tz_merged_mem: tz-merged@d8000000 {
+                       reg = <0 0xd8000000 0 0x800000>;
+                       no-map;
+               };
+
+               hwfence_shbuf: hwfence-shbuf@e6440000 {
+                       reg = <0 0xe6440000 0 0x2dd000>;
+                       no-map;
+               };
+
+               trust_ui_vm_mem: trust-ui-vm@f3800000 {
+                       reg = <0 0xf3800000 0 0x4400000>;
+                       no-map;
+               };
+
+               oem_vm_mem: oem-vm@f7c00000 {
+                       reg = <0 0xf7c00000 0 0x4c00000>;
+                       no-map;
+               };
+
+               llcc_lpi_mem: llcc-lpi@ff800000 {
+                       reg = <0 0xff800000 0 0x600000>;
+                       no-map;
+               };
+       };
+
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+
+               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,smem = <443>, <429>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
+
+               smp2p_adsp_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_adsp_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-cdsp {
+               compatible = "qcom,smp2p";
+
+               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,smem = <94>, <432>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <5>;
+
+               smp2p_cdsp_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_cdsp_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-modem {
+               compatible = "qcom,smp2p";
+
+               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,smem = <435>, <428>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               smp2p_modem_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_modem_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               ipa_smp2p_out: ipa-ap-to-modem {
+                       qcom,entry-name = "ipa";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               ipa_smp2p_in: ipa-modem-to-ap {
+                       qcom,entry-name = "ipa";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges = <0 0 0 0 0x10 0>;
+               ranges = <0 0 0 0 0x10 0>;
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,sm8650-gcc";
+                       reg = <0 0x00100000 0 0x1f4200>;
+
+                       clocks = <&bi_tcxo_div2>,
+                                <&bi_tcxo_ao_div2>,
+                                <&sleep_clk>,
+                                <&pcie0_phy>,
+                                <&pcie1_phy>,
+                                <&pcie_1_phy_aux_clk>,
+                                <&ufs_mem_phy 0>,
+                                <&ufs_mem_phy 1>,
+                                <&ufs_mem_phy 2>,
+                                <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               ipcc: mailbox@406000 {
+                       compatible = "qcom,sm8650-ipcc", "qcom,ipcc";
+                       reg = <0 0x00406000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+
+                       #mbox-cells = <2>;
+               };
+
+               gpi_dma2: dma-controller@800000 {
+                       compatible = "qcom,sm8650-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0 0x00800000 0 0x60000>;
+
+                       interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3f>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x436 0>;
+
+                       dma-coherent;
+
+                       status = "disabled";
+               };
+
+               qupv3_id_1: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x008c0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       iommus = <&apps_smmu 0x423 0>;
+
+                       dma-coherent;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c8: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00880000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c8_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi8: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00880000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c9: i2c@884000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00884000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c9_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi9: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00884000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi9_data_clk>, <&qup_spi9_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c10: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00888000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c10_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi10: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00888000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c11: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0088c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c11_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi11: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0088c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi11_data_clk>, <&qup_spi11_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c12: i2c@890000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00890000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c12_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi12: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00890000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi12_data_clk>, <&qup_spi12_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c13: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00894000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c13_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi13: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00894000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi13_data_clk>, <&qup_spi13_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       uart14: serial@898000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00898000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart14_default>, <&qup_uart14_cts_rts>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+
+                       uart15: serial@89c000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0 0x0089c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart15_default>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+               };
+
+               i2c_master_hub_0: geniqup@9c0000 {
+                       compatible = "qcom,geni-se-i2c-master-hub";
+                       reg = <0 0x009c0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_I2C_S_AHB_CLK>;
+                       clock-names = "s-ahb";
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c_hub_0: i2c@980000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00980000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S0_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c0_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_1: i2c@984000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00984000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S1_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c1_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_2: i2c@988000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00988000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S2_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c2_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_3: i2c@98c000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x0098c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S3_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c3_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_4: i2c@990000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00990000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S4_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c4_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_5: i2c@994000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00994000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S5_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c5_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_6: i2c@998000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x00998000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S6_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c6_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_7: i2c@99c000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x0099c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S7_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c7_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_8: i2c@9a0000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x009a0000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S8_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c8_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c_hub_9: i2c@9a4000 {
+                               compatible = "qcom,geni-i2c-master-hub";
+                               reg = <0 0x009a4000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_I2C_S9_CLK>,
+                                        <&gcc GCC_QUPV3_I2C_CORE_CLK>;
+                               clock-names = "se",
+                                             "core";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_I2C QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&hub_i2c9_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               gpi_dma1: dma-controller@a00000 {
+                       compatible = "qcom,sm8650-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0 0x00a00000 0 0x60000>;
+
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0xc>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0xb6 0>;
+                       dma-coherent;
+
+                       status = "disabled";
+               };
+
+               qupv3_id_0: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x00ac0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                        &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "qup-core";
+
+                       iommus = <&apps_smmu 0xa3 0>;
+
+                       dma-coherent;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c0: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c0_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi0: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c1_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi1: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi1_data_clk>, <&qup_spi1_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c2_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi2: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c3_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi3: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c4_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi4: spi@a90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi4_data_clk>, <&qup_spi4_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c5_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi5: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi5_data_clk>, <&qup_spi5_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@a98000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c6_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi6: spi@a98000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@a9c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c7_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi7: spi@a9c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt  SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi7_data_clk>, <&qup_spi7_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               cnoc_main: interconnect@1500000 {
+                       compatible = "qcom,sm8650-cnoc-main";
+                       reg = <0 0x01500000 0 0x14080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               config_noc: interconnect@1600000 {
+                       compatible = "qcom,sm8650-config-noc";
+                       reg = <0 0x01600000 0 0x6200>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,sm8650-system-noc";
+                       reg = <0 0x01680000 0 0x1d080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               pcie_noc: interconnect@16c0000 {
+                       compatible = "qcom,sm8650-pcie-anoc";
+                       reg = <0 0x016c0000 0 0x12200>;
+
+                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_AXI_CLK>,
+                                <&gcc GCC_CFG_NOC_PCIE_ANOC_AHB_CLK>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,sm8650-aggre1-noc";
+                       reg = <0 0x016e0000 0 0x16400>;
+
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,sm8650-aggre2-noc";
+                       reg = <0 0x01700000 0 0x1e400>;
+
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               mmss_noc: interconnect@1780000 {
+                       compatible = "qcom,sm8650-mmss-noc";
+                       reg = <0 0x01780000 0 0x5b800>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               rng: rng@10c3000 {
+                       compatible = "qcom,sm8650-trng", "qcom,trng";
+                       reg = <0 0x010c3000 0 0x1000>;
+               };
+
+               pcie0: pci@1c00000 {
+                       device_type = "pci";
+                       compatible = "qcom,pcie-sm8650", "qcom,pcie-sm8550";
+                       reg = <0 0x01c00000 0 0x3000>,
+                             <0 0x60000000 0 0xf1d>,
+                             <0 0x60000f20 0 0xa8>,
+                             <0 0x60001000 0 0x1000>,
+                             <0 0x60100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "config";
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+
+                       clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_DDRSS_PCIE_SF_QTB_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_AXI_CLK>,
+                                <&gcc GCC_CNOC_PCIE_SF_AXI_CLK>;
+                       clock-names = "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ddrss_sf_tbu",
+                                     "noc_aggr",
+                                     "cnoc_sf_axi";
+
+                       resets = <&gcc GCC_PCIE_0_BCR>;
+                       reset-names = "pci";
+
+                       interconnects = <&pcie_noc MASTER_PCIE_0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &cnoc_main SLAVE_PCIE_0 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "pcie-mem",
+                                            "cpu-pcie";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+
+                       iommu-map = <0     &apps_smmu 0x1400 0x1>,
+                                   <0x100 &apps_smmu 0x1401 0x1>;
+
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       #interrupt-cells = <1>;
+
+                       linux,pci-domain = <0>;
+                       num-lanes = <2>;
+                       bus-range = <0 0xff>;
+
+                       phys = <&pcie0_phy>;
+                       phy-names = "pciephy";
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0 0x00000000 0 0x60200000 0 0x100000>,
+                                <0x02000000 0 0x60300000 0 0x60300000 0 0x3d00000>;
+
+                       dma-coherent;
+
+                       status = "disabled";
+               };
+
+               pcie0_phy: phy@1c06000 {
+                       compatible = "qcom,sm8650-qmp-gen3x2-pcie-phy";
+                       reg = <0 0x01c06000 0 0x2000>;
+
+                       clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&tcsr TCSR_PCIE_0_CLKREF_EN>,
+                                <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>,
+                                <&gcc GCC_PCIE_0_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "rchng",
+                                     "pipe";
+
+                       assigned-clocks = <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       power-domains = <&gcc PCIE_0_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie0_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               pcie1: pci@1c08000 {
+                       device_type = "pci";
+                       compatible = "qcom,pcie-sm8650", "qcom,pcie-sm8550";
+                       reg = <0 0x01c08000 0 0x3000>,
+                             <0 0x40000000 0 0xf1d>,
+                             <0 0x40000f20 0 0xa8>,
+                             <0 0x40001000 0 0x1000>,
+                             <0 0x40100000 0 0x100000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config";
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+
+                       clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_DDRSS_PCIE_SF_QTB_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_AXI_CLK>,
+                                <&gcc GCC_CNOC_PCIE_SF_AXI_CLK>;
+                       clock-names = "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ddrss_sf_tbu",
+                                     "noc_aggr",
+                                     "cnoc_sf_axi";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>,
+                                <&gcc GCC_PCIE_1_LINK_DOWN_BCR>;
+                       reset-names = "pci",
+                                     "link_down";
+
+                       interconnects = <&pcie_noc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &cnoc_main SLAVE_PCIE_1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "pcie-mem",
+                                            "cpu-pcie";
+
+                       power-domains = <&gcc PCIE_1_GDSC>;
+
+                       iommu-map = <0     &apps_smmu 0x1480 0x1>,
+                                   <0x100 &apps_smmu 0x1481 0x1>;
+
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       #interrupt-cells = <1>;
+
+                       linux,pci-domain = <1>;
+                       num-lanes = <2>;
+                       bus-range = <0 0xff>;
+
+                       phys = <&pcie1_phy>;
+                       phy-names = "pciephy";
+
+                       dma-coherent;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0 0x00000000 0 0x40200000 0 0x100000>,
+                                <0x02000000 0 0x40300000 0 0x40300000 0 0x1fd00000>;
+
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy@1c0e000 {
+                       compatible = "qcom,sm8650-qmp-gen4x2-pcie-phy";
+                       reg = <0 0x01c0e000 0 0x2000>;
+
+                       clocks = <&gcc GCC_PCIE_1_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&tcsr TCSR_PCIE_1_CLKREF_EN>,
+                                <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>,
+                                <&gcc GCC_PCIE_1_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "rchng",
+                                     "pipe";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>,
+                                <&gcc GCC_PCIE_1_NOCSR_COM_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_nocsr";
+
+                       power-domains = <&gcc PCIE_1_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie1_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x28000>;
+
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #dma-cells = <1>;
+
+                       iommus = <&apps_smmu 0x480 0>,
+                                <&apps_smmu 0x481 0>;
+
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm8650-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+
+                       interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+
+                       iommus = <&apps_smmu 0x480 0>,
+                                <&apps_smmu 0x481 0>;
+               };
+
+               ufs_mem_phy: phy@1d80000 {
+                       compatible = "qcom,sm8650-qmp-ufs-phy";
+                       reg = <0 0x01d80000 0 0x2000>;
+
+                       clocks = <&tcsr TCSR_UFS_CLKREF_EN>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
+                       clock-names = "ref",
+                                     "ref_aux";
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+
+                       power-domains = <&gcc UFS_MEM_PHY_GDSC>;
+
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               ufs_mem_hc: ufs@1d84000 {
+                       compatible = "qcom,sm8650-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
+                       reg = <0 0x01d84000 0 0x3000>;
+
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_UFS_PHY_AHB_CLK>,
+                                <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                                <&tcsr TCSR_UFS_PAD_CLKREF_EN>,
+                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       clock-names = "core_clk",
+                                     "bus_aggr_clk",
+                                     "iface_clk",
+                                     "core_clk_unipro",
+                                     "ref_clk",
+                                     "tx_lane0_sync_clk",
+                                     "rx_lane0_sync_clk",
+                                     "rx_lane1_sync_clk";
+                       freq-table-hz = <100000000 403000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <100000000 403000000>,
+                                       <100000000 403000000>,
+                                       <0 0>,
+                                       <0 0>,
+                                       <0 0>;
+
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       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";
+
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       iommus = <&apps_smmu 0x60 0>;
+
+                       lanes-per-direction = <2>;
+                       qcom,ice = <&ice>;
+
+                       phys = <&ufs_mem_phy>;
+                       phy-names = "ufsphy";
+
+                       #reset-cells = <1>;
+
+                       status = "disabled";
+               };
+
+               ice: crypto@1d88000 {
+                       compatible = "qcom,sm8650-inline-crypto-engine",
+                                    "qcom,inline-crypto-engine";
+                       reg = <0 0x01d88000 0 0x8000>;
+
+                       clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0 0x01f40000 0 0x20000>;
+
+                       #hwlock-cells = <1>;
+               };
+
+               tcsr: clock-controller@1fc0000 {
+                       compatible = "qcom,sm8650-tcsr", "syscon";
+                       reg = <0 0x01fc0000 0 0xa0000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,sm8650-gpucc";
+                       reg = <0 0x03d90000 0 0xa000>;
+
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               ipa: ipa@3f40000 {
+                       compatible = "qcom,sm8650-ipa", "qcom,sm8550-ipa";
+
+                       iommus = <&apps_smmu 0x4a0 0x0>,
+                                <&apps_smmu 0x4a2 0x0>;
+                       reg = <0 0x3f40000 0 0x10000>,
+                             <0 0x3f50000 0 0x5000>,
+                             <0 0x3e04000 0 0xfc000>;
+                       reg-names = "ipa-reg",
+                                   "ipa-shared",
+                                   "gsi";
+
+                       interrupts-extended = <&intc GIC_SPI 654 IRQ_TYPE_EDGE_RISING>,
+                                             <&intc GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ipa",
+                                         "gsi",
+                                         "ipa-clock-query",
+                                         "ipa-setup-ready";
+
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
+                       clock-names = "core";
+
+                       interconnects = <&aggre2_noc MASTER_IPA 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_IPA_CFG 0>;
+                       interconnect-names = "memory",
+                                            "config";
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&ipa_smp2p_out 0>,
+                                          <&ipa_smp2p_out 1>;
+                       qcom,smem-state-names = "ipa-clock-enabled-valid",
+                                               "ipa-clock-enabled";
+
+                       status = "disabled";
+               };
+
+               remoteproc_mpss: remoteproc@4080000 {
+                       compatible = "qcom,sm8650-mpss-pas";
+                       reg = <0 0x04080000 0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack",
+                                         "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       interconnects = <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MSS>;
+                       power-domain-names = "cx",
+                                            "mss";
+
+                       memory-region = <&mpss_mem>, <&q6_mpss_dtb_mem>,
+                                       <&mpss_dsm_mem>, <&mpss_dsm_mem_2>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_modem_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+
+                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               qcom,remote-pid = <1>;
+
+                               label = "mpss";
+                       };
+               };
+
+               lpass_wsa2macro: codec@6aa0000 {
+                       compatible = "qcom,sm8650-lpass-wsa-macro", "qcom,sm8550-lpass-wsa-macro";
+                       reg = <0 0x06aa0000 0 0x1000>;
+                       clocks = <&q6prmcc LPASS_CLK_ID_WSA2_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&lpass_vamacro>;
+                       clock-names = "mclk",
+                                     "macro",
+                                     "dcodec",
+                                     "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "wsa2-mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               swr3: soundwire@6ab0000 {
+                       compatible = "qcom,soundwire-v2.0.0";
+                       reg = <0 0x06ab0000 0 0x10000>;
+                       interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lpass_wsa2macro>;
+                       clock-names = "iface";
+                       label = "WSA2";
+
+                       pinctrl-0 = <&wsa2_swr_active>;
+                       pinctrl-names = "default";
+
+                       qcom,din-ports = <4>;
+                       qcom,dout-ports = <9>;
+
+                       qcom,ports-sinterval =          /bits/ 16 <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>;
+                       qcom,ports-offset2 =            /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
+                       qcom,ports-word-length =        /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x18>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0x00 0x01 0x01 0x00 0x01 0x01 0x00 0x00 0x00 0x01 0x01 0x00 0x00>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #sound-dai-cells = <1>;
+                       status = "disabled";
+               };
+
+               lpass_rxmacro: codec@6ac0000 {
+                       compatible = "qcom,sm8650-lpass-rx-macro", "qcom,sm8550-lpass-rx-macro";
+                       reg = <0 0x06ac0000 0 0x1000>;
+                       clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&lpass_vamacro>;
+                       clock-names = "mclk",
+                                     "macro",
+                                     "dcodec",
+                                     "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               swr1: soundwire@6ad0000 {
+                       compatible = "qcom,soundwire-v2.0.0";
+                       reg = <0 0x06ad0000 0 0x10000>;
+                       interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lpass_rxmacro>;
+                       clock-names = "iface";
+                       label = "RX";
+
+                       pinctrl-0 = <&rx_swr_active>;
+                       pinctrl-names = "default";
+
+                       qcom,din-ports = <0>;
+                       qcom,dout-ports = <11>;
+
+                       qcom,ports-sinterval =          /bits/ 16 <0x03 0x1f 0x1f 0x07 0x03 0xff 0xff 0x31 0xff 0xff 0xff>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x09 0x01 0xff 0xff 0x00 0xff 0xff 0xff>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00 0xff 0xff 0x00 0xff 0xff 0xff>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0xff 0xff 0xff 0xff 0xff 0x00 0xff 0xff 0xff>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0xff 0xff 0xff 0xff 0xff 0x0f 0xff 0xff 0xff>;
+                       qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff 0xff 0xff 0x18 0xff 0xff 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff 0xff 0xff 0x01 0xff 0xff 0xff>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0x01 0x03 0xff 0xff 0x00 0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00 0xff 0xff 0x01 0xff 0xff 0xff>;
+
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #sound-dai-cells = <1>;
+                       status = "disabled";
+               };
+
+               lpass_txmacro: codec@6ae0000 {
+                       compatible = "qcom,sm8650-lpass-tx-macro", "qcom,sm8550-lpass-tx-macro";
+                       reg = <0 0x06ae0000 0 0x1000>;
+                       clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&lpass_vamacro>;
+                       clock-names = "mclk",
+                                     "macro",
+                                     "dcodec",
+                                     "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               lpass_wsamacro: codec@6b00000 {
+                       compatible = "qcom,sm8650-lpass-wsa-macro", "qcom,sm8550-lpass-wsa-macro";
+                       reg = <0 0x06b00000 0 0x1000>;
+                       clocks = <&q6prmcc LPASS_CLK_ID_WSA_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&lpass_vamacro>;
+                       clock-names = "mclk",
+                                     "macro",
+                                     "dcodec",
+                                     "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               swr0: soundwire@6b10000 {
+                       compatible = "qcom,soundwire-v2.0.0";
+                       reg = <0 0x06b10000 0 0x10000>;
+                       interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lpass_wsamacro>;
+                       clock-names = "iface";
+                       label = "WSA";
+
+                       pinctrl-0 = <&wsa_swr_active>;
+                       pinctrl-names = "default";
+
+                       qcom,din-ports = <4>;
+                       qcom,dout-ports = <9>;
+
+                       qcom,ports-sinterval =          /bits/ 16 <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>;
+                       qcom,ports-offset2 =            /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
+                       qcom,ports-word-length =        /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x18>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0x00 0x01 0x01 0x00 0x01 0x01 0x00 0x00 0x00 0x01 0x01 0x00 0x00>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #sound-dai-cells = <1>;
+                       status = "disabled";
+               };
+
+               swr2: soundwire@6d30000 {
+                       compatible = "qcom,soundwire-v2.0.0";
+                       reg = <0 0x06d30000 0 0x10000>;
+                       interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "core", "wakeup";
+                       clocks = <&lpass_txmacro>;
+                       clock-names = "iface";
+                       label = "TX";
+
+                       pinctrl-0 = <&tx_swr_active>;
+                       pinctrl-names = "default";
+
+                       qcom,din-ports = <4>;
+                       qcom,dout-ports = <0>;
+
+                       qcom,ports-sinterval-low =      /bits/ 8 <0x01 0x01 0x03 0x03>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x01 0x01>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x00 0x00>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0xff 0xff 0xff>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0xff 0xff 0xff>;
+                       qcom,ports-word-length =        /bits/ 8 <0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x02 0x00 0x00>;
+
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       #sound-dai-cells = <1>;
+                       status = "disabled";
+               };
+
+               lpass_vamacro: codec@6d44000 {
+                       compatible = "qcom,sm8650-lpass-va-macro", "qcom,sm8550-lpass-va-macro";
+                       reg = <0 0x06d44000 0 0x1000>;
+                       clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+                       clock-names = "mclk",
+                                     "macro",
+                                     "dcodec";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "fsgen";
+                       #sound-dai-cells = <1>;
+               };
+
+               lpass_tlmm: pinctrl@6e80000 {
+                       compatible = "qcom,sm8650-lpass-lpi-pinctrl";
+                       reg = <0 0x06e80000 0 0x20000>;
+
+                       clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+                       clock-names = "core", "audio";
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&lpass_tlmm 0 0 23>;
+
+                       tx_swr_active: tx-swr-active-state {
+                               clk-pins {
+                                       pins = "gpio0";
+                                       function = "swr_tx_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data-pins {
+                                       pins = "gpio1", "gpio2", "gpio14";
+                                       function = "swr_tx_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+
+                       rx_swr_active: rx-swr-active-state {
+                               clk-pins {
+                                       pins = "gpio3";
+                                       function = "swr_rx_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data-pins {
+                                       pins = "gpio4", "gpio5";
+                                       function = "swr_rx_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+
+                       dmic01_default: dmic01-default-state {
+                               clk-pins {
+                                       pins = "gpio6";
+                                       function = "dmic1_clk";
+                                       drive-strength = <8>;
+                                       output-high;
+                               };
+
+                               data-pins {
+                                       pins = "gpio7";
+                                       function = "dmic1_data";
+                                       drive-strength = <8>;
+                                       input-enable;
+                               };
+                       };
+
+                       dmic02_default: dmic02-default-state {
+                               clk-pins {
+                                       pins = "gpio8";
+                                       function = "dmic2_clk";
+                                       drive-strength = <8>;
+                                       output-high;
+                               };
+
+                               data-pins {
+                                       pins = "gpio9";
+                                       function = "dmic2_data";
+                                       drive-strength = <8>;
+                                       input-enable;
+                               };
+                       };
+
+                       wsa_swr_active: wsa-swr-active-state {
+                               clk-pins {
+                                       pins = "gpio10";
+                                       function = "wsa_swr_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data-pins {
+                                       pins = "gpio11";
+                                       function = "wsa_swr_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+
+                       wsa2_swr_active: wsa2-swr-active-state {
+                               clk-pins {
+                                       pins = "gpio15";
+                                       function = "wsa2_swr_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data-pins {
+                                       pins = "gpio16";
+                                       function = "wsa2_swr_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+               };
+
+               lpass_lpiaon_noc: interconnect@7400000 {
+                       compatible = "qcom,sm8650-lpass-lpiaon-noc";
+                       reg = <0 0x07400000 0 0x19080>;
+
+                       #interconnect-cells = <2>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               lpass_lpicx_noc: interconnect@7430000 {
+                       compatible = "qcom,sm8650-lpass-lpicx-noc";
+                       reg = <0 0x07430000 0 0x3a200>;
+
+                       #interconnect-cells = <2>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               lpass_ag_noc: interconnect@7e40000 {
+                       compatible = "qcom,sm8650-lpass-ag-noc";
+                       reg = <0 0x07e40000 0 0xe080>;
+
+                       #interconnect-cells = <2>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               sdhc_2: mmc@8804000 {
+                       compatible = "qcom,sm8650-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0 0x08804000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq",
+                                         "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface",
+                                     "core",
+                                     "xo";
+
+                       interconnects = <&aggre2_noc MASTER_SDCC_2 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_SDCC_2 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc2_opp_table>;
+
+                       iommus = <&apps_smmu 0x540 0>;
+
+                       bus-width = <4>;
+
+                       /* Forbid SDR104/SDR50 - broken hw! */
+                       sdhci-caps-mask = <0x3 0>;
+
+                       qcom,dll-config = <0x0007642c>;
+                       qcom,ddr-config = <0x80040868>;
+
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       sdhc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-19200000 {
+                                       opp-hz = /bits/ 64 <19200000>;
+                                       required-opps = <&rpmhpd_opp_min_svs>;
+                               };
+
+                               opp-50000000 {
+                                       opp-hz = /bits/ 64 <50000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+                       };
+               };
+
+               mdss: display-subsystem@ae00000 {
+                       compatible = "qcom,sm8650-mdss";
+                       reg = <0 0x0ae00000 0 0x1000>;
+                       reg-names = "mdss";
+
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
+
+                       resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
+
+                       interconnects = <&mmss_noc MASTER_MDP QCOM_ICC_TAG_ALWAYS
+                                        &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ALWAYS>,
+                                       <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "mdp0-mem",
+                                            "mdp1-mem";
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       iommus = <&apps_smmu 0x1c00 0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: display-controller@ae01000 {
+                               compatible = "qcom,sm8650-dpu";
+                               reg = <0 0x0ae01000 0 0x8f000>,
+                                     <0 0x0aeb0000 0 0x2008>;
+                               reg-names = "mdp",
+                                           "vbif";
+
+                               interrupts-extended = <&mdss 0>;
+
+                               clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "nrt_bus",
+                                             "iface",
+                                             "lut",
+                                             "core",
+                                             "vsync";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               assigned-clock-rates = <19200000>;
+
+                               operating-points-v2 = <&mdp_opp_table>;
+
+                               power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               dpu_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               dpu_intf2_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi1_in>;
+                                               };
+                                       };
+
+                                       port@2 {
+                                               reg = <2>;
+
+                                               dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dp0_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-200000000 {
+                                               opp-hz = /bits/ 64 <200000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-325000000 {
+                                               opp-hz = /bits/ 64 <325000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-375000000 {
+                                               opp-hz = /bits/ 64 <375000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-514000000 {
+                                               opp-hz = /bits/ 64 <514000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0: dsi@ae94000 {
+                               compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae94000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupts-extended = <&mdss 4>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                                        <&mdss_dsi0_phy 1>;
+
+                               operating-points-v2 = <&mdss_dsi_opp_table>;
+
+                               power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+                               phys = <&mdss_dsi0_phy>;
+                               phy-names = "dsi";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+
+                               mdss_dsi_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-187500000 {
+                                               opp-hz = /bits/ 64 <187500000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-300000000 {
+                                               opp-hz = /bits/ 64 <300000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-358000000 {
+                                               opp-hz = /bits/ 64 <358000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0_phy: phy@ae95000 {
+                               compatible = "qcom,sm8650-dsi-phy-4nm";
+                               reg = <0 0x0ae95000 0 0x200>,
+                                     <0 0x0ae95200 0 0x280>,
+                                     <0 0x0ae95500 0 0x400>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface",
+                                             "ref";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       mdss_dsi1: dsi@ae96000 {
+                               compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae96000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupts-extended = <&mdss 5>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC1_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi1_phy 0>,
+                                                        <&mdss_dsi1_phy 1>;
+
+                               operating-points-v2 = <&mdss_dsi_opp_table>;
+
+                               power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+                               phys = <&mdss_dsi1_phy>;
+                               phy-names = "dsi";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dsi1_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf2_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi1_phy: phy@ae97000 {
+                               compatible = "qcom,sm8650-dsi-phy-4nm";
+                               reg = <0 0x0ae97000 0 0x200>,
+                                     <0 0x0ae97200 0 0x280>,
+                                     <0 0x0ae97500 0 0x400>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface",
+                                             "ref";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       mdss_dp0: displayport-controller@af54000 {
+                               compatible = "qcom,sm8650-dp";
+                               reg = <0 0xaf54000 0 0x104>,
+                                     <0 0xaf54200 0 0xc0>,
+                                     <0 0xaf55000 0 0x770>,
+                                     <0 0xaf56000 0 0x9c>,
+                                     <0 0xaf57000 0 0x9c>;
+
+                               interrupts-extended = <&mdss 12>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DPTX0_AUX_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>;
+                               assigned-clock-parents = <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
+
+                               operating-points-v2 = <&dp_opp_table>;
+
+                               power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+                               phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               status = "disabled";
+
+                               dp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-162000000 {
+                                               opp-hz = /bits/ 64 <162000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs_d1>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_low_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>;
+                                       };
+                               };
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dp0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dp0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,sm8650-dispcc";
+                       reg = <0 0x0af00000 0 0x20000>;
+
+                       clocks = <&bi_tcxo_div2>,
+                                <&bi_tcxo_ao_div2>,
+                                <&gcc GCC_DISP_AHB_CLK>,
+                                <&sleep_clk>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi1_phy 0>,
+                                <&mdss_dsi1_phy 1>,
+                                <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
+                                <0>, /* dp1 */
+                                <0>,
+                                <0>, /* dp2 */
+                                <0>,
+                                <0>, /* dp3 */
+                                <0>;
+
+                       power-domains = <&rpmhpd RPMHPD_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+
+                       status = "disabled";
+               };
+
+               usb_1_hsphy: phy@88e3000 {
+                       compatible = "qcom,sm8650-snps-eusb2-phy",
+                                    "qcom,sm8550-snps-eusb2-phy";
+                       reg = <0 0x088e3000 0 0x154>;
+
+                       clocks = <&tcsr TCSR_USB2_CLKREF_EN>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_dp_qmpphy: phy@88e8000 {
+                       compatible = "qcom,sm8650-qmp-usb3-dp-phy";
+                       reg = <0 0x088e8000 0 0x3000>;
+
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "usb3_pipe";
+
+                       resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
+                       reset-names = "phy",
+                                     "common";
+
+                       power-domains = <&gcc USB3_PHY_GDSC>;
+
+                       #clock-cells = <1>;
+                       #phy-cells = <1>;
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_dp_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_dp_qmpphy_usb_ss_in: endpoint {
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_dp_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               usb_1: usb@a6f8800 {
+                       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>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_RISING>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "hs_phy_irq",
+                                         "ss_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "dp_hs_phy_irq";
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                <&tcsr TCSR_USB3_CLKREF_EN>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "sleep",
+                                     "mock_utmi",
+                                     "xo";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       usb_1_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xcd00>;
+
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+
+                               iommus = <&apps_smmu 0x40 0>;
+
+                               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>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sm8650-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
+
+                       interrupt-parent = <&intc>;
+
+                       qcom,pdc-ranges = <0 480 94>, <94 609 31>,
+                                         <125 63 1>, <126 716 12>,
+                                         <138 251 5>, <143 244 4>;
+
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               tsens0: thermal-sensor@c228000 {
+                       compatible = "qcom,sm8650-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c228000 0 0x1000>, /* TM */
+                             <0 0x0c222000 0 0x1000>; /* SROT */
+
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <15>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c229000 {
+                       compatible = "qcom,sm8650-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c229000 0 0x1000>, /* TM */
+                             <0 0x0c223000 0 0x1000>; /* SROT */
+
+                       interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <16>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens2: thermal-sensor@c22a000 {
+                       compatible = "qcom,sm8650-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c22a000 0 0x1000>, /* TM */
+                             <0 0x0c224000 0 0x1000>; /* SROT */
+
+                       interrupts = <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <13>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               aoss_qmp: power-management@c300000 {
+                       compatible = "qcom,sm8650-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0 0x0c300000 0 0x400>;
+
+                       interrupt-parent = <&ipcc>;
+                       interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                    IRQ_TYPE_EDGE_RISING>;
+
+                       mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                       #clock-cells = <0>;
+               };
+
+               sram@c3f0000 {
+                       compatible = "qcom,rpmh-stats";
+                       reg = <0 0x0c3f0000 0 0x400>;
+               };
+
+               spmi_bus: spmi@c400000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0 0x0c400000 0 0x3000>,
+                             <0 0x0c500000 0 0x4000000>,
+                             <0 0x0c440000 0 0x80000>,
+                             <0 0x0c4c0000 0 0x20000>,
+                             <0 0x0c42d000 0 0x4000>;
+                       reg-names = "core",
+                                   "chnls",
+                                   "obsrvr",
+                                   "intr",
+                                   "cnfg";
+
+                       interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "periph_irq";
+
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       qcom,bus-id = <0>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,sm8650-tlmm";
+                       reg = <0 0x0f100000 0 0x300000>;
+
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       gpio-ranges = <&tlmm 0 0 211>;
+
+                       wakeup-parent = <&pdc>;
+
+                       hub_i2c0_data_clk: hub-i2c0-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio64", "gpio65";
+                               function = "i2chub0_se0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c1_data_clk: hub-i2c1-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio66", "gpio67";
+                               function = "i2chub0_se1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c2_data_clk: hub-i2c2-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio68", "gpio69";
+                               function = "i2chub0_se2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c3_data_clk: hub-i2c3-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio70", "gpio71";
+                               function = "i2chub0_se3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c4_data_clk: hub-i2c4-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio72", "gpio73";
+                               function = "i2chub0_se4";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c5_data_clk: hub-i2c5-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio74", "gpio75";
+                               function = "i2chub0_se5";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c6_data_clk: hub-i2c6-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio76", "gpio77";
+                               function = "i2chub0_se6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c7_data_clk: hub-i2c7-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio78", "gpio79";
+                               function = "i2chub0_se7";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c8_data_clk: hub-i2c8-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio206", "gpio207";
+                               function = "i2chub0_se8";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       hub_i2c9_data_clk: hub-i2c9-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio80", "gpio81";
+                               function = "i2chub0_se9";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       pcie0_default_state: pcie0-default-state {
+                               perst-pins {
+                                       pins = "gpio94";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq-pins {
+                                       pins = "gpio95";
+                                       function = "pcie0_clk_req_n";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake-pins {
+                                       pins = "gpio96";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       pcie1_default_state: pcie1-default-state {
+                               perst-pins {
+                                       pins = "gpio97";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq-pins {
+                                       pins = "gpio98";
+                                       function = "pcie1_clk_req_n";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake-pins {
+                                       pins = "gpio99";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       qup_i2c0_data_clk: qup-i2c0-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio32", "gpio33";
+                               function = "qup1_se0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c1_data_clk: qup-i2c1-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio36", "gpio37";
+                               function = "qup1_se1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c2_data_clk: qup-i2c2-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio40", "gpio41";
+                               function = "qup1_se2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c3_data_clk: qup-i2c3-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio44", "gpio45";
+                               function = "qup1_se3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c4_data_clk: qup-i2c4-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio48", "gpio49";
+                               function = "qup1_se4";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c5_data_clk: qup-i2c5-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio52", "gpio53";
+                               function = "qup1_se5";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c6_data_clk: qup-i2c6-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio56", "gpio57";
+                               function = "qup1_se6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c7_data_clk: qup-i2c7-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio60", "gpio61";
+                               function = "qup1_se7";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c8_data_clk: qup-i2c8-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio0", "gpio1";
+                               function = "qup2_se0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c9_data_clk: qup-i2c9-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio4", "gpio5";
+                               function = "qup2_se1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c10_data_clk: qup-i2c10-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio8", "gpio9";
+                               function = "qup2_se2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c11_data_clk: qup-i2c11-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio12", "gpio13";
+                               function = "qup2_se3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c12_data_clk: qup-i2c12-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio16", "gpio17";
+                               function = "qup2_se4";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c13_data_clk: qup-i2c13-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio20", "gpio21";
+                               function = "qup2_se5";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c14_data_clk: qup-i2c14-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio24", "gpio25";
+                               function = "qup2_se6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_spi0_cs: qup-spi0-cs-state {
+                               pins = "gpio35";
+                               function = "qup1_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi0_data_clk: qup-spi0-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio32", "gpio33", "gpio34";
+                               function = "qup1_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi1_cs: qup-spi1-cs-state {
+                               pins = "gpio39";
+                               function = "qup1_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi1_data_clk: qup-spi1-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio36", "gpio37", "gpio38";
+                               function = "qup1_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi2_cs: qup-spi2-cs-state {
+                               pins = "gpio43";
+                               function = "qup1_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi2_data_clk: qup-spi2-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio40", "gpio41", "gpio42";
+                               function = "qup1_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi3_cs: qup-spi3-cs-state {
+                               pins = "gpio47";
+                               function = "qup1_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi3_data_clk: qup-spi3-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio44", "gpio45", "gpio46";
+                               function = "qup1_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi4_cs: qup-spi4-cs-state {
+                               pins = "gpio51";
+                               function = "qup1_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi4_data_clk: qup-spi4-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio48", "gpio49", "gpio50";
+                               function = "qup1_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi5_cs: qup-spi5-cs-state {
+                               pins = "gpio55";
+                               function = "qup1_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi5_data_clk: qup-spi5-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio52", "gpio53", "gpio54";
+                               function = "qup1_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi6_cs: qup-spi6-cs-state {
+                               pins = "gpio59";
+                               function = "qup1_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi6_data_clk: qup-spi6-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio56", "gpio57", "gpio58";
+                               function = "qup1_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi7_cs: qup-spi7-cs-state {
+                               pins = "gpio63";
+                               function = "qup1_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi7_data_clk: qup-spi7-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio60", "gpio61", "gpio62";
+                               function = "qup1_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi8_cs: qup-spi8-cs-state {
+                               pins = "gpio3";
+                               function = "qup2_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi8_data_clk: qup-spi8-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio0", "gpio1", "gpio2";
+                               function = "qup2_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi9_cs: qup-spi9-cs-state {
+                               pins = "gpio7";
+                               function = "qup2_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi9_data_clk: qup-spi9-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio4", "gpio5", "gpio6";
+                               function = "qup2_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi10_cs: qup-spi10-cs-state {
+                               pins = "gpio11";
+                               function = "qup2_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi10_data_clk: qup-spi10-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio8", "gpio9", "gpio10";
+                               function = "qup2_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi11_cs: qup-spi11-cs-state {
+                               pins = "gpio15";
+                               function = "qup2_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi11_data_clk: qup-spi11-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio12", "gpio13", "gpio14";
+                               function = "qup2_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi12_cs: qup-spi12-cs-state {
+                               pins = "gpio19";
+                               function = "qup2_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi12_data_clk: qup-spi12-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio16", "gpio17", "gpio18";
+                               function = "qup2_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi13_cs: qup-spi13-cs-state {
+                               pins = "gpio23";
+                               function = "qup2_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi13_data_clk: qup-spi13-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio20", "gpio21", "gpio22";
+                               function = "qup2_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi14_cs: qup-spi14-cs-state {
+                               pins = "gpio27";
+                               function = "qup2_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi14_data_clk: qup-spi14-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio24", "gpio25", "gpio26";
+                               function = "qup2_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_uart14_default: qup-uart14-default-state {
+                               /* TX, RX */
+                               pins = "gpio26", "gpio27";
+                               function = "qup2_se6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_uart14_cts_rts: qup-uart14-cts-rts-state {
+                               /* CTS, RTS */
+                               pins = "gpio24", "gpio25";
+                               function = "qup2_se6";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       qup_uart15_default: qup-uart15-default-state {
+                               /* TX, RX */
+                               pins = "gpio30", "gpio31";
+                               function = "qup2_se7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       sdc2_sleep: sdc2-sleep-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       sdc2_default: sdc2-default-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sm8650-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0 0x15000000 0 0x100000>;
+
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 706 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 689 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+
+                       dma-coherent;
+               };
+
+               intc: interrupt-controller@17100000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0 0x17100000 0 0x10000>,         /* GICD */
+                             <0 0x17180000 0 0x200000>;        /* GICR * 8 */
+
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
+
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0 0x40000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       gic_its: msi-controller@17140000 {
+                               compatible = "arm,gic-v3-its";
+                               reg = <0 0x17140000 0 0x20000>;
+
+                               msi-controller;
+                               #msi-cells = <1>;
+                       };
+               };
+
+               timer@17420000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0 0x17420000 0 0x1000>;
+
+                       ranges = <0 0 0 0x20000000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       frame@17421000 {
+                               reg = <0x17421000 0x1000>,
+                                     <0x17422000 0x1000>;
+
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <0>;
+                       };
+
+                       frame@17423000 {
+                               reg = <0x17423000 0x1000>;
+
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <1>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17425000 {
+                               reg = <0x17425000 0x1000>;
+
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <2>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17427000 {
+                               reg = <0x17427000 0x1000>;
+
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <3>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17429000 {
+                               reg = <0x17429000 0x1000>;
+
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <4>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1742b000 {
+                               reg = <0x1742b000 0x1000>;
+
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <5>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1742d000 {
+                               reg = <0x1742d000 0x1000>;
+
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <6>;
+
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@17a00000 {
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0 0x17a00000 0 0x10000>,
+                             <0 0x17a10000 0 0x10000>,
+                             <0 0x17a20000 0 0x10000>,
+                             <0 0x17a30000 0 0x10000>;
+                       reg-names = "drv-0",
+                                   "drv-1",
+                                   "drv-2";
+
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+
+                       power-domains = <&CLUSTER_PD>;
+
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS    3>, <SLEEP_TCS     2>,
+                                         <WAKE_TCS      2>, <CONTROL_TCS   0>;
+
+                       label = "apps_rsc";
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sm8650-rpmh-clk";
+
+                               clocks = <&xo_board>;
+                               clock-names = "xo";
+
+                               #clock-cells = <1>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,sm8650-rpmhpd";
+
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               #power-domain-cells = <1>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp-16 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp-48 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d2: opp-52 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d1: opp-56 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d0: opp-60 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp-64 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_l1: opp-80 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp-128 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l0: opp-144 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp-192 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp-256 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp-320 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp-336 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp-384 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp-416 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
+               };
+
+               cpufreq_hw: cpufreq@17d91000 {
+                       compatible = "qcom,sm8650-cpufreq-epss", "qcom,cpufreq-epss";
+                       reg = <0 0x17d91000 0 0x1000>,
+                             <0 0x17d92000 0 0x1000>,
+                             <0 0x17d93000 0 0x1000>,
+                             <0 0x17d94000 0 0x1000>;
+                       reg-names = "freq-domain0",
+                                   "freq-domain1",
+                                   "freq-domain2",
+                                   "freq-domain3";
+
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 738 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0",
+                                         "dcvsh-irq-1",
+                                         "dcvsh-irq-2",
+                                         "dcvsh-irq-3";
+
+                       clocks = <&bi_tcxo_div2>, <&gcc GCC_GPLL0>;
+                       clock-names = "xo", "alternate";
+
+                       #freq-domain-cells = <1>;
+                       #clock-cells = <1>;
+               };
+
+               pmu@24091000 {
+                       compatible = "qcom,sm8650-llcc-bwmon", "qcom,sc7280-llcc-bwmon";
+                       reg = <0 0x24091000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&llcc_bwmon_opp_table>;
+
+                       llcc_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <2086000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <2929000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <5931000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <6515000>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <7980000>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <10437000>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <12157000>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <14060000>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <16113000>;
+                               };
+                       };
+               };
+
+               pmu@240b7400 {
+                       compatible = "qcom,sm8650-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0 0x240b7400 0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+
+                       cpu_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <4577000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <7110000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <9155000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <12298000>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <14236000>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <16265000>;
+                               };
+                       };
+               };
+
+               gem_noc: interconnect@24100000 {
+                       compatible = "qcom,sm8650-gem-noc";
+                       reg = <0 0x24100000 0 0xc5080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               system-cache-controller@25000000 {
+                       compatible = "qcom,sm8650-llcc";
+                       reg = <0 0x25000000 0 0x200000>,
+                             <0 0x25400000 0 0x200000>,
+                             <0 0x25200000 0 0x200000>,
+                             <0 0x25600000 0 0x200000>,
+                             <0 0x25800000 0 0x200000>;
+                       reg-names = "llcc0_base",
+                                   "llcc1_base",
+                                   "llcc2_base",
+                                   "llcc3_base",
+                                   "llcc_broadcast_base";
+
+                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               remoteproc_adsp: remoteproc@30000000 {
+                       compatible = "qcom,sm8650-adsp-pas";
+                       reg = <0 0x30000000 0 0x100>;
+
+                       interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       power-domains = <&rpmhpd RPMHPD_LCX>,
+                                       <&rpmhpd RPMHPD_LMX>;
+                       power-domain-names = "lcx",
+                                            "lmx";
+
+                       memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_adsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       remoteproc_adsp_glink: glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+
+                               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               qcom,remote-pid = <2>;
+
+                               label = "lpass";
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+
+                                       label = "adsp";
+
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+
+                                               iommus = <&apps_smmu 0x1003 0x80>,
+                                                        <&apps_smmu 0x1043 0x20>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+
+                                               iommus = <&apps_smmu 0x1004 0x80>,
+                                                        <&apps_smmu 0x1044 0x20>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+
+                                               iommus = <&apps_smmu 0x1005 0x80>,
+                                                        <&apps_smmu 0x1045 0x20>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+
+                                               iommus = <&apps_smmu 0x1006 0x80>,
+                                                        <&apps_smmu 0x1046 0x20>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+
+                                               iommus = <&apps_smmu 0x1007 0x40>,
+                                                        <&apps_smmu 0x1067 0x0>,
+                                                        <&apps_smmu 0x1087 0x0>;
+                                       };
+                               };
+
+                               gpr {
+                                       compatible = "qcom,gpr";
+                                       qcom,glink-channels = "adsp_apps";
+                                       qcom,domain = <GPR_DOMAIN_ID_ADSP>;
+                                       qcom,intents = <512 20>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       q6apm: service@1 {
+                                               compatible = "qcom,q6apm";
+                                               reg = <GPR_APM_MODULE_IID>;
+                                               #sound-dai-cells = <0>;
+                                               qcom,protection-domain = "avs/audio",
+                                                                        "msm/adsp/audio_pd";
+
+                                               q6apmbedai: bedais {
+                                                       compatible = "qcom,q6apm-lpass-dais";
+                                                       #sound-dai-cells = <1>;
+                                               };
+
+                                               q6apmdai: dais {
+                                                       compatible = "qcom,q6apm-dais";
+                                                       iommus = <&apps_smmu 0x1001 0x80>,
+                                                                <&apps_smmu 0x1061 0x0>;
+                                               };
+                                       };
+
+                                       q6prm: service@2 {
+                                               compatible = "qcom,q6prm";
+                                               reg = <GPR_PRM_MODULE_IID>;
+                                               qcom,protection-domain = "avs/audio",
+                                                                        "msm/adsp/audio_pd";
+
+                                               q6prmcc: clock-controller {
+                                                       compatible = "qcom,q6prm-lpass-clocks";
+                                                       #clock-cells = <2>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               nsp_noc: interconnect@320c0000 {
+                       compatible = "qcom,sm8650-nsp-noc";
+                       reg = <0 0x320c0000 0 0xf080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               remoteproc_cdsp: remoteproc@32300000 {
+                       compatible = "qcom,sm8650-cdsp-pas";
+                       reg = <0 0x32300000 0 0x1400000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MXC>,
+                                       <&rpmhpd RPMHPD_NSP>;
+                       power-domain-names = "cx",
+                                            "mxc",
+                                            "nsp";
+
+                       memory-region = <&cdsp_mem>, <&q6_cdsp_dtb_mem>, <&global_sync_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               qcom,remote-pid = <5>;
+
+                               label = "cdsp";
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+
+                                       label = "cdsp";
+
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+
+                                               iommus = <&apps_smmu 0x1961 0x0>,
+                                                        <&apps_smmu 0x0c01 0x20>,
+                                                        <&apps_smmu 0x19c1 0x0>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+
+                                               iommus = <&apps_smmu 0x1962 0x0>,
+                                                        <&apps_smmu 0x0c02 0x20>,
+                                                        <&apps_smmu 0x19c2 0x0>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+
+                                               iommus = <&apps_smmu 0x1963 0x0>,
+                                                        <&apps_smmu 0x0c03 0x20>,
+                                                        <&apps_smmu 0x19c3 0x0>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+
+                                               iommus = <&apps_smmu 0x1964 0x0>,
+                                                        <&apps_smmu 0x0c04 0x20>,
+                                                        <&apps_smmu 0x19c4 0x0>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+
+                                               iommus = <&apps_smmu 0x1965 0x0>,
+                                                        <&apps_smmu 0x0c05 0x20>,
+                                                        <&apps_smmu 0x19c5 0x0>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+
+                                               iommus = <&apps_smmu 0x1966 0x0>,
+                                                        <&apps_smmu 0x0c06 0x20>,
+                                                        <&apps_smmu 0x19c6 0x0>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+
+                                               iommus = <&apps_smmu 0x1967 0x0>,
+                                                        <&apps_smmu 0x0c07 0x20>,
+                                                        <&apps_smmu 0x19c7 0x0>;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+
+                                               iommus = <&apps_smmu 0x1968 0x0>,
+                                                        <&apps_smmu 0x0c08 0x20>,
+                                                        <&apps_smmu 0x19c8 0x0>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       thermal-zones {
+               aoss0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu3-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu3-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 13>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 14>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-middle-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphvx0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphvx1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphvx1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphvx1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx2-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx3-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               video-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               ddr-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 13>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               ddr-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camera0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 14>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               camera0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camera1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 15>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               camera1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss2-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss3-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss4-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss4-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss5-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss5-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss6-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss6-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss7-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpuss7-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               modem0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               modem1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               modem2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens2 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               modem3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
+       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>;
+       };
+};
diff --git a/src/arm64/qcom/x1e80100-crd.dts b/src/arm64/qcom/x1e80100-crd.dts
new file mode 100644 (file)
index 0000000..7532d8e
--- /dev/null
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. X1E80100 CRD";
+       compatible = "qcom,x1e80100-crd", "qcom,x1e80100";
+
+       aliases {
+               serial0 = &uart21;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       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;
+       };
+
+       vreg_edp_3p3: regulator-edp-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob2>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l12-supply = <&vreg_s5j_1p2>;
+               vdd-l15-supply = <&vreg_s4c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1b_1p8: ldo1 {
+                       regulator-name = "vreg_l1b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_1p8: ldo4 {
+                       regulator-name = "vreg_l4b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p0: ldo5 {
+                       regulator-name = "vreg_l5b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p8: ldo7 {
+                       regulator-name = "vreg_l7b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_3p0: ldo8 {
+                       regulator-name = "vreg_l8b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p2: ldo12 {
+                       regulator-name = "vreg_l12b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p0: ldo14 {
+                       regulator-name = "vreg_l14b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_2p9: ldo16 {
+                       regulator-name = "vreg_l16b_2p9";
+                       regulator-min-microvolt = <2912000>;
+                       regulator-max-microvolt = <2912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s4c_1p8: smps4 {
+                       regulator-name = "vreg_s4c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_0p8: ldo2 {
+                       regulator-name = "vreg_l2c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p8: ldo3 {
+                       regulator-name = "vreg_l3c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s4c_1p8>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d_0p8: ldo1 {
+                       regulator-name = "vreg_l1d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d_1p8: ldo3 {
+                       regulator-name = "vreg_l3d_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f_0p7: smps1 {
+                       regulator-name = "vreg_s1f_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_1p0: ldo1 {
+                       regulator-name = "vreg_l1f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f_1p0: ldo2 {
+                       regulator-name = "vreg_l2f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f_1p0: ldo3 {
+                       regulator-name = "vreg_l3f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "i";
+
+               vdd-l1-supply = <&vreg_s4c_1p8>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
+               vreg_s1i_0p9: smps1 {
+                       regulator-name = "vreg_s1i_0p9";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2i_1p0: smps2 {
+                       regulator-name = "vreg_s2i_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_1p8: ldo1 {
+                       regulator-name = "vreg_l1i_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_1p2: ldo2 {
+                       regulator-name = "vreg_l2i_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "j";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j_0p8: ldo1 {
+                       regulator-name = "vreg_l1j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <34 2>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+};
+
+&uart21 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
diff --git a/src/arm64/qcom/x1e80100-qcp.dts b/src/arm64/qcom/x1e80100-qcp.dts
new file mode 100644 (file)
index 0000000..a37ad94
--- /dev/null
@@ -0,0 +1,399 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. X1E80100 QCP";
+       compatible = "qcom,x1e80100-qcp", "qcom,x1e80100";
+
+       aliases {
+               serial0 = &uart21;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       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";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob2>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l12-supply = <&vreg_s5j_1p2>;
+               vdd-l15-supply = <&vreg_s4c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1b_1p8: ldo1 {
+                       regulator-name = "vreg_l1b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_1p8: ldo4 {
+                       regulator-name = "vreg_l4b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p0: ldo5 {
+                       regulator-name = "vreg_l5b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p8: ldo7 {
+                       regulator-name = "vreg_l7b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_3p0: ldo8 {
+                       regulator-name = "vreg_l8b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p2: ldo12 {
+                       regulator-name = "vreg_l12b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p0: ldo14 {
+                       regulator-name = "vreg_l14b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_2p9: ldo16 {
+                       regulator-name = "vreg_l16b_2p9";
+                       regulator-min-microvolt = <2912000>;
+                       regulator-max-microvolt = <2912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s4c_1p8: smps4 {
+                       regulator-name = "vreg_s4c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_0p8: ldo2 {
+                       regulator-name = "vreg_l2c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p8: ldo3 {
+                       regulator-name = "vreg_l3c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s4c_1p8>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d_0p8: ldo1 {
+                       regulator-name = "vreg_l1d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d_1p8: ldo3 {
+                       regulator-name = "vreg_l3d_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vph_pwr>;
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f_0p7: smps1 {
+                       regulator-name = "vreg_s1f_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_1p0: ldo1 {
+                       regulator-name = "vreg_l1f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f_1p0: ldo2 {
+                       regulator-name = "vreg_l2f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f_1p0: ldo3 {
+                       regulator-name = "vreg_l3f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "i";
+
+               vdd-l1-supply = <&vreg_s4c_1p8>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
+               vreg_s1i_0p9: smps1 {
+                       regulator-name = "vreg_s1i_0p9";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2i_1p0: smps2 {
+                       regulator-name = "vreg_s2i_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_1p8: ldo1 {
+                       regulator-name = "vreg_l1i_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_1p2: ldo2 {
+                       regulator-name = "vreg_l2i_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "j";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vph_pwr>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j_0p8: ldo1 {
+                       regulator-name = "vreg_l1j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <33 3>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+};
+
+&uart21 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
diff --git a/src/arm64/qcom/x1e80100.dtsi b/src/arm64/qcom/x1e80100.dtsi
new file mode 100644 (file)
index 0000000..6f75fc3
--- /dev/null
@@ -0,0 +1,3527 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,x1e80100-gcc.h>
+#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
+#include <dt-bindings/interconnect/qcom,x1e80100-rpmh.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom,rpmhpd.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       chosen { };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       clock-frequency = <76800000>;
+                       #clock-cells = <0>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+
+               bi_tcxo_div2: bi-tcxo-div2-clk {
+                       compatible = "fixed-factor-clock";
+                       #clock-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-mult = <1>;
+                       clock-div = <2>;
+               };
+
+               bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
+                       compatible = "fixed-factor-clock";
+                       #clock-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK_A>;
+                       clock-mult = <1>;
+                       clock-div = <2>;
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+
+                       L2_0: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                       };
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU4: cpu@10000 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10000>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_1>;
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+
+                       L2_1: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                       };
+               };
+
+               CPU5: cpu@10100 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10100>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_1>;
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU6: cpu@10200 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10200>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_1>;
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU7: cpu@10300 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10300>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_1>;
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU8: cpu@20000 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x20000>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_2>;
+                       power-domains = <&CPU_PD8>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+
+                       L2_2: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                       };
+               };
+
+               CPU9: cpu@20100 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x20100>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_2>;
+                       power-domains = <&CPU_PD9>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU10: cpu@20200 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x20200>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_2>;
+                       power-domains = <&CPU_PD10>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               CPU11: cpu@20300 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x20300>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_2>;
+                       power-domains = <&CPU_PD11>;
+                       power-domain-names = "psci";
+                       cpu-idle-states = <&CLUSTER_C4>;
+               };
+
+               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>;
+                               };
+                       };
+
+                       cluster2 {
+                               core0 {
+                                       cpu = <&CPU8>;
+                               };
+
+                               core1 {
+                                       cpu = <&CPU9>;
+                               };
+
+                               core2 {
+                                       cpu = <&CPU10>;
+                               };
+
+                               core3 {
+                                       cpu = <&CPU11>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       CLUSTER_C4: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "ret";
+                               arm,psci-suspend-param = <0x00000004>;
+                               entry-latency-us = <180>;
+                               exit-latency-us = <320>;
+                               min-residency-us = <1000>;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_CL4: cluster-sleep-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "l2-ret";
+                               arm,psci-suspend-param = <0x01000044>;
+                               entry-latency-us = <350>;
+                               exit-latency-us = <500>;
+                               min-residency-us = <2500>;
+                       };
+
+                       CLUSTER_CL5: cluster-sleep-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "ret-pll-off";
+                               arm,psci-suspend-param = <0x01000054>;
+                               entry-latency-us = <2200>;
+                               exit-latency-us = <2500>;
+                               min-residency-us = <7000>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-x1e80100", "qcom,scm";
+                       interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+               };
+       };
+
+       clk_virt: interconnect-0 {
+               compatible = "qcom,x1e80100-clk-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       mc_virt: interconnect-1 {
+               compatible = "qcom,x1e80100-mc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0 0x80000000 0 0>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD0>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD0>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD0>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD0>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD1>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD1>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD1>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD1>;
+               };
+
+               CPU_PD8: power-domain-cpu8 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD2>;
+               };
+
+               CPU_PD9: power-domain-cpu9 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD2>;
+               };
+
+               CPU_PD10: power-domain-cpu10 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD2>;
+               };
+
+               CPU_PD11: power-domain-cpu11 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD2>;
+               };
+
+               CLUSTER_PD0: power-domain-cpu-cluster0 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_CL4>, <&CLUSTER_CL5>;
+               };
+
+               CLUSTER_PD1: power-domain-cpu-cluster1 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_CL4>, <&CLUSTER_CL5>;
+               };
+
+               CLUSTER_PD2: power-domain-cpu-cluster2 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_CL4>, <&CLUSTER_CL5>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gunyah_hyp_mem: gunyah-hyp@80000000 {
+                       reg = <0x0 0x80000000 0x0 0x800000>;
+                       no-map;
+               };
+
+               hyp_elf_package_mem: hyp-elf-package@80800000 {
+                       reg = <0x0 0x80800000 0x0 0x200000>;
+                       no-map;
+               };
+
+               ncc_mem: ncc@80a00000 {
+                       reg = <0x0 0x80a00000 0x0 0x400000>;
+                       no-map;
+               };
+
+               cpucp_log_mem: cpucp-log@80e00000 {
+                       reg = <0x0 0x80e00000 0x0 0x40000>;
+                       no-map;
+               };
+
+               cpucp_mem: cpucp@80e40000 {
+                       reg = <0x0 0x80e40000 0x0 0x540000>;
+                       no-map;
+               };
+
+               reserved-region@81380000 {
+                       reg = <0x0 0x81380000 0x0 0x80000>;
+                       no-map;
+               };
+
+               tags_mem: tags-region@81400000 {
+                       reg = <0x0 0x81400000 0x0 0x1a0000>;
+                       no-map;
+               };
+
+               xbl_dtlog_mem: xbl-dtlog@81a00000 {
+                       reg = <0x0 0x81a00000 0x0 0x40000>;
+                       no-map;
+               };
+
+               xbl_ramdump_mem: xbl-ramdump@81a40000 {
+                       reg = <0x0 0x81a40000 0x0 0x1c0000>;
+                       no-map;
+               };
+
+               aop_image_mem: aop-image@81c00000 {
+                       reg = <0x0 0x81c00000 0x0 0x60000>;
+                       no-map;
+               };
+
+               aop_cmd_db_mem: aop-cmd-db@81c60000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x81c60000 0x0 0x20000>;
+                       no-map;
+               };
+
+               aop_config_mem: aop-config@81c80000 {
+                       reg = <0x0 0x81c80000 0x0 0x20000>;
+                       no-map;
+               };
+
+               tme_crash_dump_mem: tme-crash-dump@81ca0000 {
+                       reg = <0x0 0x81ca0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               tme_log_mem: tme-log@81ce0000 {
+                       reg = <0x0 0x81ce0000 0x0 0x4000>;
+                       no-map;
+               };
+
+               uefi_log_mem: uefi-log@81ce4000 {
+                       reg = <0x0 0x81ce4000 0x0 0x10000>;
+                       no-map;
+               };
+
+               secdata_apss_mem: secdata-apss@81cff000 {
+                       reg = <0x0 0x81cff000 0x0 0x1000>;
+                       no-map;
+               };
+
+               pdp_ns_shared_mem: pdp-ns-shared@81e00000 {
+                       reg = <0x0 0x81e00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               gpu_prr_mem: gpu-prr@81f00000 {
+                       reg = <0x0 0x81f00000 0x0 0x10000>;
+                       no-map;
+               };
+
+               tpm_control_mem: tpm-control@81f10000 {
+                       reg = <0x0 0x81f10000 0x0 0x10000>;
+                       no-map;
+               };
+
+               usb_ucsi_shared_mem: usb-ucsi-shared@81f20000 {
+                       reg = <0x0 0x81f20000 0x0 0x10000>;
+                       no-map;
+               };
+
+               pld_pep_mem: pld-pep@81f30000 {
+                       reg = <0x0 0x81f30000 0x0 0x6000>;
+                       no-map;
+               };
+
+               pld_gmu_mem: pld-gmu@81f36000 {
+                       reg = <0x0 0x81f36000 0x0 0x1000>;
+                       no-map;
+               };
+
+               pld_pdp_mem: pld-pdp@81f37000 {
+                       reg = <0x0 0x81f37000 0x0 0x1000>;
+                       no-map;
+               };
+
+               tz_stat_mem: tz-stat@82700000 {
+                       reg = <0x0 0x82700000 0x0 0x100000>;
+                       no-map;
+               };
+
+               xbl_tmp_buffer_mem: xbl-tmp-buffer@82800000 {
+                       reg = <0x0 0x82800000 0x0 0xc00000>;
+                       no-map;
+               };
+
+               adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap@84b00000 {
+                       reg = <0x0 0x84b00000 0x0 0x800000>;
+                       no-map;
+               };
+
+               spu_secure_shared_memory_mem: spu-secure-shared-memory@85300000 {
+                       reg = <0x0 0x85300000 0x0 0x80000>;
+                       no-map;
+               };
+
+               adsp_boot_dtb_mem: adsp-boot-dtb@866c0000 {
+                       reg = <0x0 0x866c0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               spss_region_mem: spss-region@86700000 {
+                       reg = <0x0 0x86700000 0x0 0x400000>;
+                       no-map;
+               };
+
+               adsp_boot_mem: adsp-boot@86b00000 {
+                       reg = <0x0 0x86b00000 0x0 0xc00000>;
+                       no-map;
+               };
+
+               video_mem: video@87700000 {
+                       reg = <0x0 0x87700000 0x0 0x700000>;
+                       no-map;
+               };
+
+               adspslpi_mem: adspslpi@87e00000 {
+                       reg = <0x0 0x87e00000 0x0 0x3a00000>;
+                       no-map;
+               };
+
+               q6_adsp_dtb_mem: q6-adsp-dtb@8b800000 {
+                       reg = <0x0 0x8b800000 0x0 0x80000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@8b900000 {
+                       reg = <0x0 0x8b900000 0x0 0x2000000>;
+                       no-map;
+               };
+
+               q6_cdsp_dtb_mem: q6-cdsp-dtb@8d900000 {
+                       reg = <0x0 0x8d900000 0x0 0x80000>;
+                       no-map;
+               };
+
+               gpu_microcode_mem: gpu-microcode@8d9fe000 {
+                       reg = <0x0 0x8d9fe000 0x0 0x2000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp@8da00000 {
+                       reg = <0x0 0x8da00000 0x0 0x700000>;
+                       no-map;
+               };
+
+               camera_mem: camera@8e100000 {
+                       reg = <0x0 0x8e100000 0x0 0x800000>;
+                       no-map;
+               };
+
+               av1_encoder_mem: av1-encoder@8e900000 {
+                       reg = <0x0 0x8e900000 0x0 0x700000>;
+                       no-map;
+               };
+
+               reserved-region@8f000000 {
+                       reg = <0x0 0x8f000000 0x0 0xa00000>;
+                       no-map;
+               };
+
+               wpss_mem: wpss@8fa00000 {
+                       reg = <0x0 0x8fa00000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               q6_wpss_dtb_mem: q6-wpss-dtb@91300000 {
+                       reg = <0x0 0x91300000 0x0 0x80000>;
+                       no-map;
+               };
+
+               xbl_sc_mem: xbl-sc@d8000000 {
+                       reg = <0x0 0xd8000000 0x0 0x40000>;
+                       no-map;
+               };
+
+               reserved-region@d8040000 {
+                       reg = <0x0 0xd8040000 0x0 0xa0000>;
+                       no-map;
+               };
+
+               qtee_mem: qtee@d80e0000 {
+                       reg = <0x0 0xd80e0000 0x0 0x520000>;
+                       no-map;
+               };
+
+               ta_mem: ta@d8600000 {
+                       reg = <0x0 0xd8600000 0x0 0x8a00000>;
+                       no-map;
+               };
+
+               tags_mem1: tags@e1000000 {
+                       reg = <0x0 0xe1000000 0x0 0x26a0000>;
+                       no-map;
+               };
+
+               llcc_lpi_mem: llcc-lpi@ff800000 {
+                       reg = <0x0 0xff800000 0x0 0x600000>;
+                       no-map;
+               };
+
+               smem_mem: smem@ffe00000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0xffe00000 0x0 0x200000>;
+                       hwlocks = <&tcsr_mutex 3>;
+                       no-map;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges = <0 0 0 0 0x10 0>;
+               ranges = <0 0 0 0 0x10 0>;
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,x1e80100-gcc";
+                       reg = <0 0x00100000 0 0x200000>;
+
+                       clocks = <&bi_tcxo_div2>,
+                                <&sleep_clk>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>;
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               gpi_dma2: dma-controller@800000 {
+                       compatible = "qcom,x1e80100-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0 0x00800000 0 0x60000>;
+
+                       interrupts = <GIC_SPI 788 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 789 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 791 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 792 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 793 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 794 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 795 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 796 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 797 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 798 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 799 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3e>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x436 0x0>;
+
+                       status = "disabled";
+               };
+
+               qupv3_2: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x008c0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       iommus = <&apps_smmu 0x423 0x0>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c16: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00880000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 808 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c16_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi16: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00880000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 808 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi16_data_clk>, <&qup_spi16_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c17: i2c@884000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00884000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 809 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c17_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi17: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00884000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 809 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi17_data_clk>, <&qup_spi17_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c18: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00888000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c18_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi18: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00888000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi18_data_clk>, <&qup_spi18_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c19: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0088c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c19_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi19: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0088c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi19_data_clk>, <&qup_spi19_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c20: i2c@890000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00890000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 812 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c20_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi20: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00890000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 812 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi20_data_clk>, <&qup_spi20_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c21: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00894000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 813 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c21_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi21: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00894000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 813 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi21_data_clk>, <&qup_spi21_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       uart21: serial@894000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00894000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 813 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart21_default>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+
+                       i2c22: i2c@898000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00898000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c22_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi22: spi@898000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00898000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi22_data_clk>, <&qup_spi22_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c23: i2c@89c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0089c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c23_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi23: spi@89c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0089c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_2 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma2 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi23_data_clk>, <&qup_spi23_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               gpi_dma1: dma-controller@a00000 {
+                       compatible = "qcom,x1e80100-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0 0x00a00000 0 0x60000>;
+
+                       interrupts = <GIC_SPI 776 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 777 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 778 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 779 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 780 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 782 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 783 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 784 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 785 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 786 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 787 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3e>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x136 0x0>;
+
+                       status = "disabled";
+               };
+
+               qupv3_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x00ac0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       iommus = <&apps_smmu 0x123 0x0>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c8: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 800 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c8_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi8: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 800 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c9: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 801 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c9_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi9: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 801 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi9_data_clk>, <&qup_spi9_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c10: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 802 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c10_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi10: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 802 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c11: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c11_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi11: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi11_data_clk>, <&qup_spi11_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c12: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c12_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi12: spi@a90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi12_data_clk>, <&qup_spi12_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c13: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c13_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi13: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi13_data_clk>, <&qup_spi13_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c14: i2c@a98000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 806 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c14_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi14: spi@a98000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 806 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi14_data_clk>, <&qup_spi14_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c15: i2c@a9c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 807 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c15_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi15: spi@a9c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 807 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre1_noc MASTER_QUP_1 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi15_data_clk>, <&qup_spi15_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               gpi_dma0: dma-controller@b00000  {
+                       compatible = "qcom,x1e80100-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0 0x00b00000 0 0x60000>;
+
+                       interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3e>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x456 0x0>;
+
+                       status = "disabled";
+               };
+
+               qupv3_0: geniqup@bc0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0 0x00bc0000 0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       iommus = <&apps_smmu 0x443 0x0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c0: i2c@b80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0xb80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c0_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi0: spi@b80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b80000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@b84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c1_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi1: spi@b84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b84000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi1_data_clk>, <&qup_spi1_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@b88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c2_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi2: spi@b88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0xb88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@b8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c3_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi3: spi@b8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b8c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@b90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0xb90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c4_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi4: spi@b90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b90000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi4_data_clk>, <&qup_spi4_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@b94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c5_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi5: spi@b94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b94000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi5_data_clk>, <&qup_spi5_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@b98000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c6_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi6: spi@b98000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b98000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@b9c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00b9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_i2c7_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       spi7: spi@b9c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00b9c000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&aggre2_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
+                                                &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config",
+                                                    "qup-memory";
+
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx",
+                                           "rx";
+
+                               pinctrl-0 = <&qup_spi7_data_clk>, <&qup_spi7_cs>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
+               cnoc_main: interconnect@1500000 {
+                       compatible = "qcom,x1e80100-cnoc-main";
+                       reg = <0 0x1500000 0 0x14400>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               config_noc: interconnect@1600000 {
+                       compatible = "qcom,x1e80100-cnoc-cfg";
+                       reg = <0 0x1600000 0 0x6600>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,x1e80100-system-noc";
+                       reg = <0 0x1680000 0 0x1c080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               pcie_south_anoc: interconnect@16c0000 {
+                       compatible = "qcom,x1e80100-pcie-south-anoc";
+                       reg = <0 0x16c0000 0 0xd080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               pcie_center_anoc: interconnect@16d0000 {
+                       compatible = "qcom,x1e80100-pcie-center-anoc";
+                       reg = <0 0x16d0000 0 0x7000>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,x1e80100-aggre1-noc";
+                       reg = <0 0x16E0000 0 0x14400>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,x1e80100-aggre2-noc";
+                       reg = <0 0x1700000 0 0x1c400>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               pcie_north_anoc: interconnect@1740000 {
+                       compatible = "qcom,x1e80100-pcie-north-anoc";
+                       reg = <0 0x1740000 0 0x9080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               usb_center_anoc: interconnect@1750000 {
+                       compatible = "qcom,x1e80100-usb-center-anoc";
+                       reg = <0 0x1750000 0 0x8800>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               usb_north_anoc: interconnect@1760000 {
+                       compatible = "qcom,x1e80100-usb-north-anoc";
+                       reg = <0 0x1760000 0 0x7080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               usb_south_anoc: interconnect@1770000 {
+                       compatible = "qcom,x1e80100-usb-south-anoc";
+                       reg = <0 0x1770000 0 0xf080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               mmss_noc: interconnect@1780000 {
+                       compatible = "qcom,x1e80100-mmss-noc";
+                       reg = <0 0x1780000 0 0x5B800>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0 0x01f40000 0 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
+               gem_noc: interconnect@26400000 {
+                       compatible = "qcom,x1e80100-gem-noc";
+                       reg = <0 0x26400000 0 0x311200>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               nsp_noc: interconnect@320c0000 {
+                       compatible = "qcom,x1e80100-nsp-noc";
+                       reg = <0 0x320C0000 0 0xE080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               lpass_ag_noc: interconnect@7e40000 {
+                       compatible = "qcom,x1e80100-lpass-ag-noc";
+                       reg = <0 0x7e40000 0 0xE080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               lpass_lpiaon_noc: interconnect@7400000 {
+                       compatible = "qcom,x1e80100-lpass-lpiaon-noc";
+                       reg = <0 0x7400000 0 0x19080>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               lpass_lpicx_noc: interconnect@7430000 {
+                       compatible = "qcom,x1e80100-lpass-lpicx-noc";
+                       reg = <0 0x7430000 0 0x3A200>;
+
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+
+                       #interconnect-cells = <2>;
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,x1e80100-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
+
+                       qcom,pdc-ranges = <0 480 42>, <42 251 5>,
+                                         <47 522 52>, <99 609 32>,
+                                         <131 717 12>, <143 816 19>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,x1e80100-tlmm";
+                       reg = <0 0x0f100000 0 0xf00000>;
+
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       gpio-ranges = <&tlmm 0 0 239>;
+                       wakeup-parent = <&pdc>;
+
+                       qup_i2c0_data_clk: qup-i2c0-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio0", "gpio1";
+                               function = "qup0_se0";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c1_data_clk: qup-i2c1-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio4", "gpio5";
+                               function = "qup0_se1";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c2_data_clk: qup-i2c2-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio8", "gpio9";
+                               function = "qup0_se2";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c3_data_clk: qup-i2c3-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio12", "gpio13";
+                               function = "qup0_se3";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c4_data_clk: qup-i2c4-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio16", "gpio17";
+                               function = "qup0_se4";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c5_data_clk: qup-i2c5-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio20", "gpio21";
+                               function = "qup0_se5";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c6_data_clk: qup-i2c6-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio24", "gpio25";
+                               function = "qup0_se6";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c7_data_clk: qup-i2c7-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio14", "gpio15";
+                               function = "qup0_se7";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c8_data_clk: qup-i2c8-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio32", "gpio33";
+                               function = "qup1_se0";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c9_data_clk: qup-i2c9-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio36", "gpio37";
+                               function = "qup1_se1";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c10_data_clk: qup-i2c10-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio40", "gpio41";
+                               function = "qup1_se2";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c11_data_clk: qup-i2c11-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio44", "gpio45";
+                               function = "qup1_se3";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c12_data_clk: qup-i2c12-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio48", "gpio49";
+                               function = "qup1_se4";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c13_data_clk: qup-i2c13-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio52", "gpio53";
+                               function = "qup1_se5";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c14_data_clk: qup-i2c14-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio56", "gpio57";
+                               function = "qup1_se6";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c15_data_clk: qup-i2c15-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio54", "gpio55";
+                               function = "qup1_se7";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c16_data_clk: qup-i2c16-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio64", "gpio65";
+                               function = "qup2_se0";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c17_data_clk: qup-i2c17-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio68", "gpio69";
+                               function = "qup2_se1";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c18_data_clk: qup-i2c18-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio72", "gpio73";
+                               function = "qup2_se2";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c19_data_clk: qup-i2c19-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio76", "gpio77";
+                               function = "qup2_se3";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c20_data_clk: qup-i2c20-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio80", "gpio81";
+                               function = "qup2_se4";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c21_data_clk: qup-i2c21-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio84", "gpio85";
+                               function = "qup2_se5";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c22_data_clk: qup-i2c22-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio88", "gpio89";
+                               function = "qup2_se6";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c23_data_clk: qup-i2c23-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio86", "gpio87";
+                               function = "qup2_se7";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_spi0_cs: qup-spi0-cs-state {
+                               pins = "gpio3";
+                               function = "qup0_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi0_data_clk: qup-spi0-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio0", "gpio1", "gpio2";
+                               function = "qup0_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi1_cs: qup-spi1-cs-state {
+                               pins = "gpio7";
+                               function = "qup0_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi1_data_clk: qup-spi1-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio4", "gpio5", "gpio6";
+                               function = "qup0_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi2_cs: qup-spi2-cs-state {
+                               pins = "gpio11";
+                               function = "qup0_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi2_data_clk: qup-spi2-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio8", "gpio9", "gpio10";
+                               function = "qup0_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi3_cs: qup-spi3-cs-state {
+                               pins = "gpio15";
+                               function = "qup0_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi3_data_clk: qup-spi3-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio12", "gpio13", "gpio14";
+                               function = "qup0_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi4_cs: qup-spi4-cs-state {
+                               pins = "gpio19";
+                               function = "qup0_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi4_data_clk: qup-spi4-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio16", "gpio17", "gpio18";
+                               function = "qup0_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi5_cs: qup-spi5-cs-state {
+                               pins = "gpio23";
+                               function = "qup0_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi5_data_clk: qup-spi5-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio20", "gpio21", "gpio22";
+                               function = "qup0_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi6_cs: qup-spi6-cs-state {
+                               pins = "gpio27";
+                               function = "qup0_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi6_data_clk: qup-spi6-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio24", "gpio25", "gpio26";
+                               function = "qup0_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi7_cs: qup-spi7-cs-state {
+                               pins = "gpio13";
+                               function = "qup0_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi7_data_clk: qup-spi7-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio14", "gpio15", "gpio12";
+                               function = "qup0_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi8_cs: qup-spi8-cs-state {
+                               pins = "gpio35";
+                               function = "qup1_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi8_data_clk: qup-spi8-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio32", "gpio33", "gpio34";
+                               function = "qup1_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi9_cs: qup-spi9-cs-state {
+                               pins = "gpio39";
+                               function = "qup1_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi9_data_clk: qup-spi9-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio36", "gpio37", "gpio38";
+                               function = "qup1_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi10_cs: qup-spi10-cs-state {
+                               pins = "gpio43";
+                               function = "qup1_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi10_data_clk: qup-spi10-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio40", "gpio41", "gpio42";
+                               function = "qup1_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi11_cs: qup-spi11-cs-state {
+                               pins = "gpio47";
+                               function = "qup1_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi11_data_clk: qup-spi11-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio44", "gpio45", "gpio46";
+                               function = "qup1_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi12_cs: qup-spi12-cs-state {
+                               pins = "gpio51";
+                               function = "qup1_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi12_data_clk: qup-spi12-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio48", "gpio49", "gpio50";
+                               function = "qup1_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi13_cs: qup-spi13-cs-state {
+                               pins = "gpio55";
+                               function = "qup1_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi13_data_clk: qup-spi13-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio52", "gpio53", "gpio54";
+                               function = "qup1_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi14_cs: qup-spi14-cs-state {
+                               pins = "gpio59";
+                               function = "qup1_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi14_data_clk: qup-spi14-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio56", "gpio57", "gpio58";
+                               function = "qup1_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi15_cs: qup-spi15-cs-state {
+                               pins = "gpio53";
+                               function = "qup1_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi15_data_clk: qup-spi15-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio54", "gpio55", "gpio52";
+                               function = "qup1_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi16_cs: qup-spi16-cs-state {
+                               pins = "gpio67";
+                               function = "qup2_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi16_data_clk: qup-spi16-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio64", "gpio65", "gpio66";
+                               function = "qup2_se0";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi17_cs: qup-spi17-cs-state {
+                               pins = "gpio71";
+                               function = "qup2_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi17_data_clk: qup-spi17-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio68", "gpio69", "gpio70";
+                               function = "qup2_se1";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi18_cs: qup-spi18-cs-state {
+                               pins = "gpio75";
+                               function = "qup2_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi18_data_clk: qup-spi18-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio72", "gpio73", "gpio74";
+                               function = "qup2_se2";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi19_cs: qup-spi19-cs-state {
+                               pins = "gpio79";
+                               function = "qup2_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi19_data_clk: qup-spi19-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio76", "gpio77", "gpio78";
+                               function = "qup2_se3";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi20_cs: qup-spi20-cs-state {
+                               pins = "gpio83";
+                               function = "qup2_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi20_data_clk: qup-spi20-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio80", "gpio81", "gpio82";
+                               function = "qup2_se4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi21_cs: qup-spi21-cs-state {
+                               pins = "gpio87";
+                               function = "qup2_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi21_data_clk: qup-spi21-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio84", "gpio85", "gpio86";
+                               function = "qup2_se5";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi22_cs: qup-spi22-cs-state {
+                               pins = "gpio91";
+                               function = "qup2_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi22_data_clk: qup-spi22-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio88", "gpio89", "gpio90";
+                               function = "qup2_se6";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi23_cs: qup-spi23-cs-state {
+                               pins = "gpio85";
+                               function = "qup2_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi23_data_clk: qup-spi23-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio86", "gpio87", "gpio84";
+                               function = "qup2_se7";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_uart21_default: qup-uart21-default-state {
+                               /* TX, RX */
+                               pins = "gpio86", "gpio87";
+                               function = "qup2_se5";
+                               drive-strength= <2>;
+                               bias-disable;
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,x1e80100-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0 0x15000000 0 0x100000>;
+
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+               };
+
+               intc: interrupt-controller@17000000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0 0x17000000 0 0x10000>,     /* GICD */
+                             <0 0x17080000 0 0x480000>;    /* GICR * 12 */
+
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0x0 0x40000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       gic_its: msi-controller@17040000 {
+                               compatible = "arm,gic-v3-its";
+                               reg = <0 0x17040000 0 0x40000>;
+
+                               msi-controller;
+                               #msi-cells = <1>;
+
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@17500000 {
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0 0x17500000 0 0x10000>,
+                             <0 0x17510000 0 0x10000>,
+                             <0 0x17520000 0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2";
+                       qcom,drv-count = <3>;
+
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS    3>, <SLEEP_TCS     2>,
+                                         <WAKE_TCS      2>, <CONTROL_TCS   0>;
+
+                       label = "apps_rsc";
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,x1e80100-rpmh-clk";
+
+                               clocks = <&xo_board>;
+                               clock-names = "xo";
+
+                               #clock-cells = <1>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,x1e80100-rpmhpd";
+
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               #power-domain-cells = <1>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp-16 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp-48 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d2: opp-52 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d1: opp-56 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d0: opp-60 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp-64 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_l1: opp-80 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp-128 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l0: opp-144 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp-192 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp-256 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp-320 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp-336 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp-384 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp-416 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
+               };
+
+               timer@17800000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0 0x17800000 0 0x1000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0 0 0x20000000>;
+
+                       frame@17801000 {
+                               reg = <0 0x17801000 0x1000>,
+                                     <0 0x17802000 0x1000>;
+
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <0>;
+                       };
+
+                       frame@17803000 {
+                               reg = <0 0x17803000 0x1000>;
+
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <1>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17805000 {
+                               reg = <0 0x17805000 0x1000>;
+
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <2>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17807000 {
+                               reg = <0 0x17807000 0x1000>;
+
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <3>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17809000 {
+                               reg = <0 0x17809000 0x1000>;
+
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <4>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1780b000 {
+                               reg = <0 0x1780b000 0x1000>;
+
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <5>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1780d000 {
+                               reg = <0 0x1780d000 0x1000>;
+
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+
+                               frame-number = <6>;
+
+                               status = "disabled";
+                       };
+               };
+
+               system-cache-controller@25000000 {
+                       compatible = "qcom,x1e80100-llcc";
+                       reg = <0 0x25000000 0 0x200000>,
+                             <0 0x25200000 0 0x200000>,
+                             <0 0x25400000 0 0x200000>,
+                             <0 0x25600000 0 0x200000>,
+                             <0 0x25800000 0 0x200000>,
+                             <0 0x25a00000 0 0x200000>,
+                             <0 0x25c00000 0 0x200000>,
+                             <0 0x25e00000 0 0x200000>,
+                             <0 0x26000000 0 0x200000>;
+                       reg-names = "llcc0_base",
+                                   "llcc1_base",
+                                   "llcc2_base",
+                                   "llcc3_base",
+                                   "llcc4_base",
+                                   "llcc5_base",
+                                   "llcc6_base",
+                                   "llcc7_base",
+                                   "llcc_broadcast_base";
+                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+               };
+       };
+
+       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>;
+       };
+};
index ef3bb835d5c0512758fc46fd51e83755ab7a9403..6f133f54ded54efb0bc53575db98eeaaff5c18f6 100644 (file)
                                 * CVBS and HDMI inputs through SW[49-53]
                                 * switches.
                                 *
-                                * CVBS is the default selection, link it to
-                                * VIN4 here.
+                                * HDMI is the default selection, leave CVBS
+                                * not connected here.
                                 */
-                               adv7180_out: endpoint {
-                                       remote-endpoint = <&vin4_in>;
-                               };
                        };
                };
 
                interrupt-parent = <&gpio1>;
                interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
 
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               dvdd-3v-supply = <&reg_3p3v>;
+               bgvdd-supply = <&reg_1p8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
                                 * CVBS and HDMI inputs through SW[49-53]
                                 * switches.
                                 *
-                                * CVBS is the default selection, leave HDMI
-                                * not connected here.
+                                * HDMI is the default selection, link it to
+                                * VIN4 here.
                                 */
                                adv7612_out: endpoint {
-                                       pclk-sample = <0>;
-                                       hsync-active = <0>;
-                                       vsync-active = <0>;
+                                       remote-endpoint = <&vin4_in>;
                                };
                        };
                };
                function = "usb0";
        };
 
-       vin4_pins_cvbs: vin4 {
-               groups = "vin4_data8", "vin4_sync", "vin4_clk";
+       vin4_pins: vin4 {
+               groups = "vin4_data24", "vin4_sync", "vin4_clk";
                function = "vin4";
        };
 };
 };
 
 &vin4 {
-       pinctrl-0 = <&vin4_pins_cvbs>;
+       pinctrl-0 = <&vin4_pins>;
        pinctrl-names = "default";
 
        status = "okay";
        ports {
                port {
                        vin4_in: endpoint {
-                               remote-endpoint = <&adv7180_out>;
+                               pclk-sample = <0>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               remote-endpoint = <&adv7612_out>;
                        };
                };
        };
index f1a5778ef11583b675c358932d12ee7230faa1ae..cba2fde9dd3688b371a8438aa12b9ed2d0e0d6b6 100644 (file)
                interrupt-parent = <&gpio1>;
                interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               dvdd-3v-supply = <&reg_3p3v>;
+               bgvdd-supply = <&reg_1p8v>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
index 405404c0843d9747aeffc014d52a07db5144415e..0608dce92e4059352a68f42db0ecd39bbfc83372 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       d1p8: regulator-fixed {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        d3p3: regulator-fixed {
                compatible = "regulator-fixed";
                regulator-name = "fixed-3.3V";
                interrupt-parent = <&gpio1>;
                interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
 
+               avdd-supply = <&d1p8>;
+               dvdd-supply = <&d1p8>;
+               pvdd-supply = <&d1p8>;
+               dvdd-3v-supply = <&d3p3>;
+               bgvdd-supply = <&d1p8>;
+
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
                adi,input-clock = "1x";
index bb4a5270f71b6a75d8a637bbfd515172e41e9b28..913f70fe6c5cd2d802474484a92c70bc9eb67cea 100644 (file)
 };
 
 &hscif0 {
+       pinctrl-0 = <&hscif0_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
 
index 6c7b29b69d0e104b6e77c3c51b23428c2b22ad36..5facfad9615838ecf422adc71905b40d033e08b1 100644 (file)
@@ -96,6 +96,7 @@
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
+                       interrupt-parent = <&irqc>;
                        gpio-ranges = <&pinctrl 0 0 152>;
                        clocks = <&cpg CPG_MOD R9A08G045_GPIO_HCLK>;
                        power-domains = <&cpg>;
                                 <&cpg R9A08G045_GPIO_SPARE_RESETN>;
                };
 
+               irqc: interrupt-controller@11050000 {
+                       compatible = "renesas,r9a08g045-irqc", "renesas,rzg2l-irqc";
+                       #interrupt-cells = <2>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0 0x11050000 0 0x10000>;
+                       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>,
+                                    <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 453 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 454 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                       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";
+                       clocks = <&cpg CPG_MOD R9A08G045_IA55_CLK>,
+                                <&cpg CPG_MOD R9A08G045_IA55_PCLK>;
+                       clock-names = "clk", "pclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A08G045_IA55_RESETN>;
+               };
+
                sdhi0: mmc@11c00000  {
                        compatible = "renesas,sdhi-r9a08g045", "renesas,rcar-gen3-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        status = "disabled";
                };
 
+               eth0: ethernet@11c30000 {
+                       compatible = "renesas,r9a08g045-gbeth", "renesas,rzg2l-gbeth";
+                       reg = <0 0x11c30000 0 0x10000>;
+                       interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mux", "fil", "arp_ns";
+                       phy-mode = "rgmii";
+                       clocks = <&cpg CPG_MOD R9A08G045_ETH0_CLK_AXI>,
+                                <&cpg CPG_MOD R9A08G045_ETH0_CLK_CHI>,
+                                <&cpg CPG_MOD R9A08G045_ETH0_REFCLK>;
+                       clock-names = "axi", "chi", "refclk";
+                       resets = <&cpg R9A08G045_ETH0_RST_HW_N>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               eth1: ethernet@11c40000 {
+                       compatible = "renesas,r9a08g045-gbeth", "renesas,rzg2l-gbeth";
+                       reg = <0 0x11c40000 0 0x10000>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mux", "fil", "arp_ns";
+                       phy-mode = "rgmii";
+                       clocks = <&cpg CPG_MOD R9A08G045_ETH1_CLK_AXI>,
+                                <&cpg CPG_MOD R9A08G045_ETH1_CLK_CHI>,
+                                <&cpg CPG_MOD R9A08G045_ETH1_REFCLK>;
+                       clock-names = "axi", "chi", "refclk";
+                       resets = <&cpg R9A08G045_ETH1_RST_HW_N>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@12400000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
index 33f2ecf424412f4d67739889fa81e023c92a3067..50ed66d42a24532a6a0c77e2564eacb34d843a0b 100644 (file)
                };
 
                avb: ethernet@a3300000 {
-                       compatible = "renesas,etheravb-r9a09g011","renesas,etheravb-rzv2m";
+                       compatible = "renesas,etheravb-r9a09g011", "renesas,etheravb-rzv2m";
                        reg = <0 0xa3300000 0 0x800>;
                        interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, /* ch0: Rx0 BE */
                                     <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>, /* ch1: Rx1 NC */
index 547859c388ce4bd6179659b7c2ca6572392292df..4409c47239b9824099174f7fd3033b4d7d3fbdd8 100644 (file)
                m25p,fast-read;
                spi-max-frequency = <50000000>;
                spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <4>;
 
                partitions {
                        compatible = "fixed-partitions";
index 56ff92453976fd6ad9ed0bcc7785627dced17532..5e4209d6fb42f3a30339c90c622658527a38be44 100644 (file)
                m25p,fast-read;
                spi-max-frequency = <50000000>;
                spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <4>;
 
                partitions {
                        compatible = "fixed-partitions";
index a199de8f8b025109e5e50b5fe2db0f60130669de..f062d4ad78b79d9a2c511b31bd2159e9c89d6e87 100644 (file)
@@ -9,18 +9,36 @@
 #include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
 
 /*
- * Signals of SW_CONFIG switches:
- * @SW_SD0_DEV_SEL:
- *     0 - SD0 is connected to eMMC
- *     1 - SD0 is connected to uSD0 card
+ * On-board switches' states:
+ * @SW_OFF: switch's state is OFF
+ * @SW_ON:  switch's state is ON
  */
-#define SW_SD0_DEV_SEL 1
+#define SW_OFF         0
+#define SW_ON          1
+
+/*
+ * SW_CONFIG[x] switches' states:
+ * @SW_CONFIG2:
+ *     SW_OFF - SD0 is connected to eMMC
+ *     SW_ON  - SD0 is connected to uSD0 card
+ * @SW_CONFIG3:
+ *     SW_OFF - SD2 is connected to SoC
+ *     SW_ON  - SCIF1, SSI0, IRQ0, IRQ1 connected to SoC
+ */
+#define SW_CONFIG2     SW_ON
+#define SW_CONFIG3     SW_ON
 
 / {
        compatible = "renesas,rzg3s-smarcm", "renesas,r9a08g045s33", "renesas,r9a08g045";
 
        aliases {
                mmc0 = &sdhi0;
+#if SW_CONFIG3 == SW_OFF
+               mmc2 = &sdhi2;
+#else
+               eth0 = &eth0;
+               eth1 = &eth1;
+#endif
        };
 
        chosen {
@@ -43,7 +61,7 @@
                enable-active-high;
        };
 
-#if SW_SD0_DEV_SEL
+#if SW_CONFIG2 == SW_ON
        vccq_sdhi0: regulator1 {
                compatible = "regulator-gpio";
                regulator-name = "SDHI0 VccQ";
                regulator-always-on;
        };
 #endif
+
+       vcc_sdhi2: regulator2 {
+               compatible = "regulator-fixed";
+               regulator-name = "SDHI2 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&pinctrl RZG2L_GPIO(8, 1) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+#if SW_CONFIG3 == SW_ON
+&eth0 {
+       pinctrl-0 = <&eth0_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       phy0: ethernet-phy@7 {
+               reg = <7>;
+               interrupt-parent = <&pinctrl>;
+               interrupts = <RZG2L_GPIO(12, 0) IRQ_TYPE_EDGE_FALLING>;
+               rxc-skew-psec = <0>;
+               txc-skew-psec = <0>;
+               rxdv-skew-psec = <0>;
+               txen-skew-psec = <0>;
+               rxd0-skew-psec = <0>;
+               rxd1-skew-psec = <0>;
+               rxd2-skew-psec = <0>;
+               rxd3-skew-psec = <0>;
+               txd0-skew-psec = <0>;
+               txd1-skew-psec = <0>;
+               txd2-skew-psec = <0>;
+               txd3-skew-psec = <0>;
+       };
+};
+
+&eth1 {
+       pinctrl-0 = <&eth1_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&phy1>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       phy1: ethernet-phy@7 {
+               reg = <7>;
+               interrupt-parent = <&pinctrl>;
+               interrupts = <RZG2L_GPIO(12, 1) IRQ_TYPE_EDGE_FALLING>;
+               rxc-skew-psec = <0>;
+               txc-skew-psec = <0>;
+               rxdv-skew-psec = <0>;
+               txen-skew-psec = <0>;
+               rxd0-skew-psec = <0>;
+               rxd1-skew-psec = <0>;
+               rxd2-skew-psec = <0>;
+               rxd3-skew-psec = <0>;
+               txd0-skew-psec = <0>;
+               txd1-skew-psec = <0>;
+               txd2-skew-psec = <0>;
+               txd3-skew-psec = <0>;
+       };
 };
+#endif
 
 &extal_clk {
        clock-frequency = <24000000>;
 };
 
-#if SW_SD0_DEV_SEL
+#if SW_CONFIG2 == SW_ON
 /* SD0 slot */
 &sdhi0 {
        pinctrl-0 = <&sdhi0_pins>;
 };
 #endif
 
+#if SW_CONFIG3 == SW_OFF
+&sdhi2 {
+       pinctrl-0 = <&sdhi2_pins>;
+       pinctrl-names = "default";
+       vmmc-supply = <&vcc_sdhi2>;
+       bus-width = <4>;
+       max-frequency = <50000000>;
+       status = "okay";
+};
+#endif
+
 &pinctrl {
+       eth0-phy-irq-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(12, 0) GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "eth0-phy-irq";
+       };
+
+       eth0_pins: eth0 {
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 0, 1)>;  /* ET0_TXC */
+                       power-source = <1800>;
+                       output-enable;
+                       input-enable;
+                       drive-strength-microamp = <5200>;
+               };
+
+               tx_ctl {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 1, 1)>;  /* ET0_TX_CTL */
+                       power-source = <1800>;
+                       output-enable;
+                       drive-strength-microamp = <5200>;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 2, 1)>,  /* ET0_TXD0 */
+                                <RZG2L_PORT_PINMUX(1, 3, 1)>,  /* ET0_TXD1 */
+                                <RZG2L_PORT_PINMUX(1, 4, 1)>,  /* ET0_TXD2 */
+                                <RZG2L_PORT_PINMUX(2, 0, 1)>,  /* ET0_TXD3 */
+                                <RZG2L_PORT_PINMUX(3, 0, 1)>,  /* ET0_RXC */
+                                <RZG2L_PORT_PINMUX(3, 1, 1)>,  /* ET0_RX_CTL */
+                                <RZG2L_PORT_PINMUX(3, 2, 1)>,  /* ET0_RXD0 */
+                                <RZG2L_PORT_PINMUX(3, 3, 1)>,  /* ET0_RXD1 */
+                                <RZG2L_PORT_PINMUX(4, 0, 1)>,  /* ET0_RXD2 */
+                                <RZG2L_PORT_PINMUX(4, 1, 1)>,  /* ET0_RXD3 */
+                                <RZG2L_PORT_PINMUX(4, 3, 1)>,  /* ET0_MDC */
+                                <RZG2L_PORT_PINMUX(4, 4, 1)>,  /* ET0_MDIO */
+                                <RZG2L_PORT_PINMUX(4, 5, 1)>;  /* ET0_LINKSTA */
+                       power-source = <1800>;
+               };
+       };
+
+       eth1-phy-irq-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(12, 1) GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "eth1-phy-irq";
+       };
+
+       eth1_pins: eth1 {
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(7, 0, 1)>;  /* ET1_TXC */
+                       power-source = <1800>;
+                       output-enable;
+                       input-enable;
+                       drive-strength-microamp = <5200>;
+               };
+
+               tx_ctl {
+                       pinmux = <RZG2L_PORT_PINMUX(7, 1, 1)>;  /* ET1_TX_CTL */
+                       power-source = <1800>;
+                       output-enable;
+                       drive-strength-microamp = <5200>;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(7, 2, 1)>,  /* ET1_TXD0 */
+                                <RZG2L_PORT_PINMUX(7, 3, 1)>,  /* ET1_TXD1 */
+                                <RZG2L_PORT_PINMUX(7, 4, 1)>,  /* ET1_TXD2 */
+                                <RZG2L_PORT_PINMUX(8, 0, 1)>,  /* ET1_TXD3 */
+                                <RZG2L_PORT_PINMUX(8, 4, 1)>,  /* ET1_RXC */
+                                <RZG2L_PORT_PINMUX(9, 0, 1)>,  /* ET1_RX_CTL */
+                                <RZG2L_PORT_PINMUX(9, 1, 1)>,  /* ET1_RXD0 */
+                                <RZG2L_PORT_PINMUX(9, 2, 1)>,  /* ET1_RXD1 */
+                                <RZG2L_PORT_PINMUX(9, 3, 1)>,  /* ET1_RXD2 */
+                                <RZG2L_PORT_PINMUX(10, 0, 1)>, /* ET1_RXD3 */
+                                <RZG2L_PORT_PINMUX(10, 2, 1)>, /* ET1_MDC */
+                                <RZG2L_PORT_PINMUX(10, 3, 1)>, /* ET1_MDIO */
+                                <RZG2L_PORT_PINMUX(10, 4, 1)>; /* ET1_LINKSTA */
+                       power-source = <1800>;
+               };
+       };
+
        sdhi0_pins: sd0 {
                data {
                        pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
                       "SD0_CLK", "SD0_CMD", "SD0_RST#";
                power-source = <1800>;
        };
+
+       sdhi2_pins: sd2 {
+               data {
+                       pins = "P11_2", "P11_3", "P12_0", "P12_1";
+                       input-enable;
+               };
+
+               ctrl {
+                       pins = "P11_1";
+                       input-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(11, 0, 8)>, /* SD2_CLK */
+                                <RZG2L_PORT_PINMUX(11, 1, 8)>, /* SD2_CMD */
+                                <RZG2L_PORT_PINMUX(11, 2, 8)>, /* SD2_DATA0 */
+                                <RZG2L_PORT_PINMUX(11, 3, 8)>, /* SD2_DATA1 */
+                                <RZG2L_PORT_PINMUX(12, 0, 8)>, /* SD2_DATA2 */
+                                <RZG2L_PORT_PINMUX(12, 1, 8)>, /* SD2_DATA3 */
+                                <RZG2L_PORT_PINMUX(14, 1, 7)>; /* SD2_CD# */
+               };
+       };
 };
index e7073a09ed2e259209ed7a35288abacd4a14a121..21452013723084991f23dcf07c0a823f41633092 100644 (file)
 / {
        aliases {
                serial0 = &scif0;
+               mmc1 = &sdhi1;
+       };
+
+       vcc_sdhi1: regulator-vcc-sdhi1 {
+               compatible = "regulator-fixed";
+               regulator-name = "SDHI1 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&pinctrl RZG2L_GPIO(2, 3) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vccq_sdhi1: regulator-vccq-sdhi1 {
+               compatible = "regulator-gpio";
+               regulator-name = "SDHI1 VccQ";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&pinctrl RZG2L_GPIO(4, 2) GPIO_ACTIVE_HIGH>;
+               gpios-states = <1>;
+               states = <3300000 1>, <1800000 0>;
        };
 };
 
                pinmux = <RZG2L_PORT_PINMUX(6, 3, 1)>, /* RXD */
                         <RZG2L_PORT_PINMUX(6, 4, 1)>; /* TXD */
        };
+
+       sdhi1_pins: sd1 {
+               data {
+                       pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
+                       power-source = <3300>;
+               };
+
+               ctrl {
+                       pins = "SD1_CLK", "SD1_CMD";
+                       power-source = <3300>;
+               };
+
+               cd {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
+               };
+       };
+
+       sdhi1_pins_uhs: sd1-uhs {
+               data {
+                       pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
+                       power-source = <1800>;
+               };
+
+               ctrl {
+                       pins = "SD1_CLK", "SD1_CMD";
+                       power-source = <1800>;
+               };
+
+               cd {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
+               };
+       };
 };
 
 &scif0 {
        pinctrl-0 = <&scif0_pins>;
        status = "okay";
 };
+
+&sdhi1 {
+       pinctrl-0 = <&sdhi1_pins>;
+       pinctrl-1 = <&sdhi1_pins_uhs>;
+       pinctrl-names = "default", "state_uhs";
+       vmmc-supply = <&vcc_sdhi1>;
+       vqmmc-supply = <&vccq_sdhi1>;
+       bus-width = <4>;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       max-frequency = <125000000>;
+       status = "okay";
+};
index 3885ef3454ff6e92d8f0d00509d0f935e7e40fa6..50de17e4fb3f25ed0ad490d9b4e593cab2b2cc5a 100644 (file)
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
+               #interrupt-cells = <2>;
                interrupt-parent = <&gpio6>;
                interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
 
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
+               #interrupt-cells = <2>;
                interrupt-parent = <&gpio6>;
                interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
        };
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
+               #interrupt-cells = <2>;
                interrupt-parent = <&gpio7>;
                interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
        };
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
+               #interrupt-cells = <2>;
                interrupt-parent = <&gpio5>;
                interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
        };
index 3429e124d95a2168639ee1713d0ec78bbdd5d0d8..5b4e223851659f64bf82b1022f984e22e0bccd8e 100644 (file)
@@ -7,6 +7,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc1 = &sdmmc;
                mmc2 = &sdio;
        };
index c1bbd555f5f5b2cc4b51456dbf459da86912f65e..0a90a88fc664977a3f4ab049db2787cd17e90480 100644 (file)
@@ -14,6 +14,7 @@
        compatible = "rockchip,px30-evb", "rockchip,px30";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdmmc;
                mmc1 = &sdio;
                mmc2 = &emmc;
index 7d4c5324c61bced0e082a366fbf8d27ea213bf14..16798eb770770447f5d4a772127b41fedee37224 100644 (file)
@@ -13,6 +13,7 @@
        compatible = "tsd,px30-ringneck-haikou", "rockchip,px30";
 
        aliases {
+               ethernet0 = &gmac;
                mmc2 = &sdmmc;
        };
 
index 42ce78beb4134d15bdbbe80bcde366ab32b50c11..9137dd76e72cedb0cfbf1995032e5852cab80f96 100644 (file)
@@ -20,7 +20,6 @@
        #size-cells = <2>;
 
        aliases {
-               ethernet0 = &gmac;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                clock-names = "spiclk", "apb_pclk";
                dmas = <&dmac 12>, <&dmac 13>;
                dma-names = "tx", "rx";
+               num-cs = <2>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>;
                #address-cells = <1>;
                clock-names = "spiclk", "apb_pclk";
                dmas = <&dmac 14>, <&dmac 15>;
                dma-names = "tx", "rx";
+               num-cs = <2>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>;
                #address-cells = <1>;
index e9810d2f04071c8aa6af93d513cfa592b8fb293e..b47fe02c33fbdc33d6d9b2ac116381a007043e72 100644 (file)
        status = "okay";
 };
 
+&gpio0 {
+       gpio-line-names =
+               /* GPIO0_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_B0 - B7 */
+               "", "", "", "header1-pin3 [GPIO0_B3]",
+               "header1-pin5 [GPIO0_B4]", "", "",
+               "header1-pin11 [GPIO0_B7]",
+               /* GPIO0_C0 - C7 */
+               "header1-pin13 [GPIO0_C0]",
+               "header1-pin15 [GPIO0_C1]", "", "", "",
+               "", "", "",
+               /* GPIO0_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio1 {
+       gpio-line-names =
+               /* GPIO1_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_C0 - C7 */
+               "", "", "", "", "", "", "header1-pin21 [GPIO1_C6]",
+               "header1-pin19 [GPIO1_C7]",
+               /* GPIO1_D0 - D7 */
+               "header1-pin23 [GPIO1_D0]", "header1-pin24 [GPIO1_D1]",
+               "", "", "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               /* GPIO2_A0 - A7 */
+               "header1-pin10 [GPIO2_A0]", "header1-pin8 [GPIO2_A1]",
+               "", "",
+               "header1-pin7 [GPIO2_A4]", "header1-pin12 [GPIO2_A5]",
+               "header2-pin46 [GPIO2_A6]", "header1-pin22 [GPIO1_A7]",
+               /* GPIO2_B0 - B7 */
+               "header2-pin45 [GPIO2_B0]", "header1-pin18 [GPIO2_B1]",
+               "header1-pin16 [GPIO2_B2]", "header2-pin44 [GPIO2_B3]",
+               "header2-pin43 [GPIO2_B4]", "header2-pin28 [GPIO2_B5]",
+               "header2-pin30 [GPIO2_B6]", "header2-pin32 [GPIO2_B7]",
+               /* GPIO2_C0 - C7 */
+               "header2-pin34 [GPIO2_C0]", "", "", "", "", "", "", "",
+               /* GPIO2_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               /* GPIO3_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO3_B0 - B7 */
+               "", "", "header2-pin42 [GPIO3_B2]",
+               "header2-pin41 [GPIO3_B3]", "header2-pin40 [GPIO3_B4]",
+               "header2-pin39 [GPIO3_B5]", "", "",
+               /* GPIO3_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO3_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
 &i2c1 {
        status = "okay";
 };
index 2ae4bb7d5e62a3bb83edf2b3929cc88f880c5902..cfc0a87b5195930d0527ba49a8b2995042538184 100644 (file)
        #size-cells = <2>;
 
        aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               gpio4 = &gpio4;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
index 1deef53a4c9407694fa71184c9eb08d691cf9a62..c7b1862fca6a0f14ab1eef78239f5875a52be164 100644 (file)
@@ -9,6 +9,7 @@
        compatible = "zkmagic,a95x-z2", "rockchip,rk3318";
 
        aliases {
+               ethernet0 = &gmac2phy;
                mmc0 = &sdmmc;
                mmc1 = &sdio;
                mmc2 = &emmc;
index ce318e05f0a60a306e897bd478f9d22a6c0db000..f4d20f29c1b47bb18bc41ab742f4be8c17dbbfba 100644 (file)
@@ -6,30 +6,16 @@
  */
 
 /dts-v1/;
-#include "rk3326-odroid-go.dtsi"
+#include "rk3326-anbernic-rg351m.dtsi"
 
 / {
        model = "Anbernic RG351M";
        compatible = "anbernic,rg351m", "rockchip,rk3326";
-
-       vibrator {
-               compatible = "pwm-vibrator";
-               pwms = <&pwm0 0 1000000 0>;
-               pwm-names = "enable";
-       };
 };
 
-/delete-node/ &builtin_gamepad;
-/delete-node/ &vcc_host; /* conflicts with pwm vibration motor */
-
 &internal_display {
        compatible = "elida,kd35t133";
        iovcc-supply = <&vcc_lcd>;
+       rotation = <270>;
        vdd-supply = <&vcc_lcd>;
 };
-
-&pwm0 {
-       status = "okay";
-};
-
-/delete-node/ &rk817_charger;
diff --git a/src/arm64/rockchip/rk3326-anbernic-rg351m.dtsi b/src/arm64/rockchip/rk3326-anbernic-rg351m.dtsi
new file mode 100644 (file)
index 0000000..b6d041d
--- /dev/null
@@ -0,0 +1,478 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Hardkernel Co., Ltd
+ * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
+ * Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.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"
+
+/ {
+       aliases {
+               mmc0 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&vcc_bl>;
+               pwms = <&pwm1 0 25000 0>;
+       };
+
+       /*
+        * LED is a tri-state. Driven high it is red, driven low it is
+        * green, and not driven at all (pin set to input) it is amber.
+        * Additionally, there is a 2nd LED that is not controllable
+        * that is on (red) when plugged in to power.
+        */
+       gpio_led: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin>;
+
+               red_green_led: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_CHARGING;
+               };
+       };
+
+       rk817-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "rk817_int";
+               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", "Speaker";
+               simple-audio-card,routing =
+                       "MICL", "Mic Jack",
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "Speaker", "SPKO";
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_2ch>;
+               };
+       };
+
+       vccsys: vccsys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v8_sys";
+               regulator-always-on;
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+       };
+
+       vibrator {
+               compatible = "pwm-vibrator";
+               pwms = <&pwm0 0 1000000 0>;
+               pwm-names = "enable";
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cru {
+       assigned-clocks = <&cru PLL_NPLL>,
+               <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
+               <&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
+               <&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
+
+       assigned-clock-rates = <1188000000>,
+               <200000000>, <200000000>,
+               <150000000>, <150000000>,
+               <100000000>, <200000000>;
+};
+
+&display_subsystem {
+       status = "okay";
+};
+
+&dsi {
+       status = "okay";
+
+       ports {
+               mipi_out: port@1 {
+                       reg = <1>;
+
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+
+       internal_display: panel@0 {
+               reg = <0>;
+               backlight = <&backlight>;
+               reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_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_PB2 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+               wakeup-source;
+
+               vcc1-supply = <&vccsys>;
+               vcc2-supply = <&vccsys>;
+               vcc3-supply = <&vccsys>;
+               vcc4-supply = <&vccsys>;
+               vcc5-supply = <&vccsys>;
+               vcc6-supply = <&vccsys>;
+               vcc7-supply = <&vccsys>;
+               vcc8-supply = <&vccsys>;
+
+               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_3v3: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       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>;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc3v3_pmu";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       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-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_wifi";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       usb_midu: BOOST {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <5400000>;
+                               regulator-min-microvolt = <5000000>;
+                               regulator-name = "usb_midu";
+                       };
+               };
+
+               rk817_codec: codec {
+                       rockchip,mic-in-differential;
+               };
+       };
+};
+
+&i2s1_2ch {
+       status = "okay";
+};
+
+&io_domains {
+       vccio1-supply = <&vcc_3v3>;
+       vccio2-supply = <&vccio_sd>;
+       vccio3-supply = <&vcc_3v3>;
+       vccio4-supply = <&vcc_3v3>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       status = "okay";
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc {
+       cap-sd-highspeed;
+       card-detect-delay = <200>;
+       cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>;
+       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_host: host-port {
+               status = "okay";
+       };
+
+       u2phy_otg: otg-port {
+               status = "disabled";
+       };
+};
+
+&usb20_otg {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&pinctrl {
+       headphone {
+               hp_det: hp-det {
+                       rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       leds {
+               led_pin: led-pin {
+                       rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               dc_det: dc-det {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pmic_int: pmic-int {
+                       rockchip,pins = <0 RK_PB2 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>;
+               };
+       };
+};
diff --git a/src/arm64/rockchip/rk3326-anbernic-rg351v.dts b/src/arm64/rockchip/rk3326-anbernic-rg351v.dts
new file mode 100644 (file)
index 0000000..c79f7a7
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include "rk3326-anbernic-rg351m.dtsi"
+
+/ {
+       model = "Anbernic RG351V";
+       compatible = "anbernic,rg351v", "rockchip,rk3326";
+
+       gpio_keys_vol: gpio-keys-vol {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               button-vol-down {
+                       gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               button-vol-up {
+                       gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+};
+
+&internal_display {
+       compatible = "anbernic,rg351v-panel", "newvision,nv3051d";
+       vdd-supply = <&vcc_lcd>;
+};
+
+&io_domains {
+       vccio1-supply = <&vccio_sd>;
+};
+
+&vcc_sd {
+       regulator-max-microvolt = <3000000>;
+       regulator-min-microvolt = <1800000>;
+};
+
+&vccio_sd {
+       regulator-max-microvolt = <1800000>;
+};
index 40bf808642b91f679586ce617ca8d1be2869fa5c..824183e515da6434caedf89dd6fd206988690cf5 100644 (file)
@@ -9,6 +9,7 @@
        compatible = "azw,beelink-a1", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
                mmc0 = &sdmmc;
                mmc1 = &emmc;
        };
index ff6b466e0e07442b10ba97d9ba129f1cc36fbeb8..1eef5504445fa9eaffd135980e955309ef8c2126 100644 (file)
@@ -11,6 +11,7 @@
        compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2phy;
                mmc0 = &sdmmc;
                mmc1 = &sdio;
                mmc2 = &emmc;
index 1445b879ac7abd8f6deec6c39d63900b67d8f6f0..a4399da7d8b1ad4652060b53f00f05ae2c9c33e7 100644 (file)
@@ -14,6 +14,7 @@
        compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
                ethernet1 = &rtl8153;
                mmc0 = &sdmmc;
        };
index 5d7d567283e525b664592d772d48ff7a9669c9aa..4237f2ee8fee3370711d376313c7f966ab597995 100644 (file)
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
 
+                       motorcomm,auto-sleep-disabled;
                        motorcomm,clk-out-frequency-hz = <125000000>;
                        motorcomm,keep-pll-enabled;
-                       motorcomm,auto-sleep-disabled;
+                       motorcomm,rx-clk-drv-microamp = <5020>;
+                       motorcomm,rx-data-drv-microamp = <5020>;
 
                        pinctrl-0 = <&eth_phy_reset_pin>;
                        pinctrl-names = "default";
index dc83d74045a3c1660b8695e4fd90b6535bed9a8b..f20662929c7713c918c43a8633853571ce8b1274 100644 (file)
@@ -15,6 +15,7 @@
        compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
                ethernet1 = &rtl8153;
                mmc0 = &sdmmc;
        };
index 5d5d9574088cab6047d533b35cc57ba137597418..414897a57e757045e5d5a036568f56d004dcba99 100644 (file)
@@ -11,6 +11,7 @@
        compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
                mmc0 = &sdmmc;
                mmc1 = &emmc;
        };
index 018a3a5075c72ed013ea33b7a7a8b16a24675a40..3cda6c627b681e7b470643372148651878e38165 100644 (file)
@@ -21,6 +21,8 @@
        compatible = "radxa,rockpi-e", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
+               ethernet1 = &gmac2phy;
                mmc0 = &sdmmc;
                mmc1 = &emmc;
        };
        status = "okay";
 };
 
+&gpio0 {
+       gpio-line-names =
+               /* GPIO0_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_D0 - D7 */
+               "", "", "", "pin-15 [GPIO0_D3]", "", "", "", "";
+};
+
+&gpio1 {
+       gpio-line-names =
+               /* GPIO1_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_D0 - D7 */
+               "", "", "", "", "pin-07 [GPIO1_D4]", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               /* GPIO2_A0 - A7 */
+               "pin-08 [GPIO2_A0]", "pin-10 [GPIO2_A1]", "pin-11 [GPIO2_A2]",
+               "pin-13 [GPIO2-A3]", "pin-27 [GPIO2_A4]", "pin-28 [GPIO2_A5]",
+               "pin-33 [GPIO2_A6]", "",
+               /* GPIO2_B0 - B7 */
+               "", "", "", "", "pin-26 [GPIO2_B4]", "", "", "pin-36 [GPIO2_B7]",
+               /* GPIO2_C0 - C7 */
+               "pin-32 [GPIO2_C0]", "pin-35 [GPIO2_C1]", "pin-12 [GPIO2_C2]",
+               "pin-38 [GPIO2_C3]", "pin-29 [GPIO2_C4]", "pin-31 [GPIO2_C5]",
+               "pin-37 [GPIO2_C6]", "pin-40 [GPIO2_C7]",
+               /* GPIO2_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               /* GPIO3_A0 - A7 */
+               "pin-23 [GPIO3_A0]", "pin-19 [GPIO3_A1]", "pin-21 [GPIO3_A2]",
+               "", "pin-03 [GPIO3_A4]", "", "pin-05 [GPIO3_A6]", "",
+               /* GPIO3_B0 - B7 */
+               "pin-24 [GPIO3_B0]", "", "", "", "", "", "", "",
+               /* GPIO3_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO3_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
 &i2c1 {
        status = "okay";
 
index 0a27fa5271f57684a930d4a0cd9ded6dd74d1eb2..229fe9da9c2ddc1e31ac662a6996424efe78d64e 100644 (file)
@@ -11,6 +11,7 @@
        compatible = "pine64,rock64", "rockchip,rk3328";
 
        aliases {
+               ethernet0 = &gmac2io;
                mmc0 = &sdmmc;
                mmc1 = &emmc;
        };
index cc8209795c3e53b7be5ce1e5a2f7262469767b71..7b4c15c4a9c319da2e92a19ca902884a788e9514 100644 (file)
        #size-cells = <2>;
 
        aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
@@ -27,8 +31,6 @@
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                i2c3 = &i2c3;
-               ethernet0 = &gmac2io;
-               ethernet1 = &gmac2phy;
        };
 
        cpus {
        pwm3: pwm@ff1b0030 {
                compatible = "rockchip,rk3328-pwm";
                reg = <0x0 0xff1b0030 0x0 0x10>;
-               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
                clock-names = "pwm", "pclk";
                pinctrl-names = "default";
                resets = <&cru SRST_GMAC2IO_A>;
                reset-names = "stmmaceth";
                rockchip,grf = <&grf>;
+               tx-fifo-depth = <2048>;
+               rx-fifo-depth = <4096>;
                snps,txpbl = <0x4>;
                status = "disabled";
        };
                reset-names = "stmmaceth";
                phy-mode = "rmii";
                phy-handle = <&phy>;
+               tx-fifo-depth = <2048>;
+               rx-fifo-depth = <4096>;
                snps,txpbl = <0x4>;
                clock_in_out = "output";
                status = "disabled";
index e47d1398aecac7bbb151cd9d542b57ff7c163b7f..b48b98c13705c385ccceb1c66066eb24be854636 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &emmc;
        };
 
index be06e6e64d1831d7c49c5ee100f183f4c14d0d36..029b8e22e709ff97a4827865c726bb64e8e83548 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "geekbuying,geekbox", "rockchip,rk3368";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &emmc;
        };
 
index 5753e57fd7161fa420d08494686e028a4e32af21..8ac8acf4082df46eabea35dcb14adb9e129f3515 100644 (file)
@@ -8,6 +8,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &emmc;
        };
 
index 81d1064fdb2154e7d8e9f74ef4c18597992d6f9e..dcee2e28916f710faa519de1adda98c070fc222d 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdmmc;
                mmc1 = &emmc;
        };
index 5589f3db6b36b42053883073a03e13161ca53c70..b16b7ca02379a82f5daceb56ea516bc69744e539 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "rockchip,r88", "rockchip,rk3368";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &emmc;
        };
index a4c5aaf1f4579484acac1d406d0ea85b0777de50..62af0cb94839bba5f6e0c6e368f65fa0f35d10de 100644 (file)
        #size-cells = <2>;
 
        aliases {
-               ethernet0 = &gmac;
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
index 6464ef4d113ddd8613910ed24c6809cb016f8c0e..173da81fc23117f959b859e5587d44dcea7c1143 100644 (file)
@@ -15,6 +15,7 @@
        compatible = "openailab,eaidk-610", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index 3d1e126b553f93f4a93f33289ee7b0221a082183..55eca7a50a1f546d17e5ff8b66d7fd040058f181 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdhci;
        };
 
index 1ce85a5816e4514519ff975fae4bbb26511fd10a..30e4879f322c5dc0317c55ac17fbe38010746af6 100644 (file)
        model = "96boards RK3399 Ficus";
        compatible = "vamrs,ficus", "rockchip,rk3399";
 
+       aliases {
+               ethernet0 = &gmac;
+       };
+
        chosen {
                stdout-path = "serial2:1500000n8";
        };
index c5db64f3e12413c5fe0259735b37c321d3bac00b..260415d99aebf8fcb301bd6e3d32354eb4d1f63d 100644 (file)
@@ -16,6 +16,7 @@
        compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index 0f9cc042d9bf06b3445c2cb125435c823f3b26b4..1cba1d857c96ba06e3f257b8a15f20a99a9250ee 100644 (file)
@@ -70,7 +70,7 @@
 &spi0 {
        status = "okay";
 
-       cr50@0 {
+       tpm@0 {
                compatible = "google,cr50";
                reg = <0>;
                interrupt-parent = <&gpio0>;
index c5e7de60c12140c0dae9789cc338ef5f1b9fac3c..5846a11f0e848fc059446a47b57ff732b45e9f4c 100644 (file)
@@ -706,7 +706,7 @@ camera: &i2c7 {
 &spi2 {
        status = "okay";
 
-       cr50@0 {
+       tpm@0 {
                compatible = "google,cr50";
                reg = <0>;
                interrupt-parent = <&gpio1>;
index 7af27e8216f1b30e394ba5586f061a55ad7ffa72..4a6ab6c2e24cff8cd47c6f09c554bf8a84e4dc1c 100644 (file)
@@ -11,6 +11,7 @@
        compatible = "hugsun,x99", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index 8302e51def52a382ef9a442509f6dab44d414c71..99ac4ed0f13f6f69b1ec826de346dad4374dca69 100644 (file)
 / {
        model = "Khadas Edge-Captain";
        compatible = "khadas,edge-captain", "rockchip,rk3399";
+
+       aliases {
+               ethernet0 = &gmac;
+       };
 };
 
 &gmac {
index f5dcb99dc3495a571ee44ec68ce5f78c37cdb126..e12e7b4d64ca17226b936c02bd70cbcfaf6bd5b0 100644 (file)
 / {
        model = "Khadas Edge-V";
        compatible = "khadas,edge-v", "rockchip,rk3399";
+
+       aliases {
+               ethernet0 = &gmac;
+       };
 };
 
 &gmac {
index 1eb287a3f8c03e2c7ed333d284bcd4b81be92d94..9e3aec4440bd652c6d4b2702aa72e9653fc57adf 100644 (file)
@@ -19,6 +19,7 @@
        compatible = "kobol,helios64", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdmmc;
                mmc1 = &sdhci;
                spi1 = &spi1;
index a21ac319f809fea04c99e90e51aeeaab85be7fed..cb69e2145fa9400c84b8038c9ccd372224f14fb4 100644 (file)
@@ -15,6 +15,7 @@
        compatible = "leez,p710", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index 7c5f441a2219ee4ec7631a09b5309ff29c5d77f4..b7f1e47978a69e796fda80afec783becac45ad8d 100644 (file)
@@ -18,6 +18,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index dba4d03bfc2b84e4a373d1e30ab2f9c4e0cb9ba3..e7551449e718ca7f6f79b01a97194a9ecb12829f 100644 (file)
@@ -17,6 +17,7 @@
        compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index 115c14c0a3c68c44be5c2ed1dc772c5d1496910b..18a98c4648eae78cf927a848f9ba8e4f0b4cfdc5 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "rk3399-puma.dtsi"
+#include <dt-bindings/input/input.h>
 
 / {
        model = "Theobroma Systems RK3399-Q7 SoM";
                stdout-path = "serial0:115200n8";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&haikou_keys_pin>;
+               pinctrl-names = "default";
+
+               button-batlow-n {
+                       gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "BATLOW#";
+                       linux,code = <KEY_BATTERY>;
+               };
+
+               button-slp-btn-n {
+                       gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
+                       label = "SLP_BTN#";
+                       linux,code = <KEY_SLEEP>;
+               };
+
+               button-wake-n {
+                       gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "WAKE#";
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+
+               switch-lid-btn-n {
+                       gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "LID_BTN#";
+                       linux,code = <SW_LID>;
+                       linux,input-type = <EV_SW>;
+               };
+       };
+
        leds {
                pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>;
 
 };
 
 &pinctrl {
-       pinctrl-names = "default";
-       pinctrl-0 = <&haikou_pin_hog>;
-
-       hog {
-               haikou_pin_hog: haikou-pin-hog {
+       buttons {
+               haikou_keys_pin: haikou-keys-pin {
                        rockchip,pins =
                          /* LID_BTN */
                          <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
                          <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
                          /* SLP_BTN# */
                          <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
-                         /* BIOS_DISABLE# */
+                         /* WAKE# */
                          <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
index 20e3f41efe97fa873aa3727aaf3e7597dffa0cef..c08e69391c015405a5ea7de34e211ee12ee6c58a 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdhci;
        };
 
        drive-impedance-ohm = <33>;
 };
 
+&gpio0 {
+       /*
+        * The BIOS_DISABLE hog is a feedback pin for the actual status of the
+        * signal. This usually represents the state of a switch on the baseboard.
+        * The pin has a 10k pull-up resistor connected, so no pull-up setting is needed.
+        */
+       bios-disable-hog {
+               gpios = <RK_PB0 GPIO_ACTIVE_HIGH>;
+               gpio-hog;
+               input;
+               line-name = "bios_disable";
+       };
+};
+
 &gmac {
        assigned-clocks = <&cru SCLK_RMII_SRC>;
        assigned-clock-parents = <&clkin_gmac>;
index c32913df93c327e5208e8a8b2119e3a133d856f2..ca7a446b656895bc59f14c4d663d8cdaf2dc8ed8 100644 (file)
@@ -14,6 +14,7 @@
        compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdmmc;
                mmc1 = &sdhci;
        };
index 8bfd5f88d1ef61d9ce45d617d4fc5d199d4b84cc..7baf9d1b22fd5fd9e88cfd37ade59377d3ce2829 100644 (file)
@@ -15,6 +15,7 @@
        compatible = "radxa,rock-4c-plus", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
        };
index f2279aa6ca9e129120018508191c0c68a926f801..281a12180703433462fa9f4fb7e0ed1f2dfaeeef 100644 (file)
@@ -12,6 +12,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
        };
index bca2b50e0a93473d6fe63fbcb682d5cb2ad8d126..f30b82a10ca385a5735ec772bca2cb39aced0ef7 100644 (file)
@@ -11,6 +11,7 @@
 
 / {
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdio0;
                mmc1 = &sdmmc;
                mmc2 = &sdhci;
index e6ac292ce6458be4ee43dc1657fc2d2dff7c61b1..b3ef1c85e7549ec0a89c669b34056eda47c4410f 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdmmc;
                mmc1 = &sdhci;
        };
@@ -44,7 +45,7 @@
        fan0: gpio-fan {
                #cooling-cells = <2>;
                compatible = "gpio-fan";
-               gpio-fan,speed-map = <0 0 3000 1>;
+               gpio-fan,speed-map = <0 0>, <3000 1>;
                gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
                status = "okay";
        };
index da0dfb237f853f9403f2acfa007e82c0418375b8..6e12c5a920caba018fbecb2ba10c64c4ee527020 100644 (file)
        #size-cells = <2>;
 
        aliases {
-               ethernet0 = &gmac;
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               gpio4 = &gpio4;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                interrupt-names = "job", "mmu", "gpu";
                clocks = <&cru ACLK_GPU>;
                #cooling-cells = <2>;
+               dynamic-power-coefficient = <2640>;
                power-domains = <&power RK3399_PD_GPU>;
                status = "disabled";
        };
index 8b8992a8e9c0d8a141756391ba3b68e4e9296267..8823c924dc1d643e850855cc528c4a51aab86bef 100644 (file)
@@ -13,6 +13,7 @@
        compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
 
        aliases {
+               ethernet0 = &gmac;
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
        };
index 1c6d83b47cd217b53b6a65a5f520e7dac858c613..6ecdf5d283390ae354063bc936468a17ddc0050b 100644 (file)
 &pinctrl {
        leds {
                sys_led_pin: sys-status-led-pin {
-                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
 
index 1ead3c5c24b37588bf236140e934e2807d75e2cd..0ac64f043b807fdada61a431d6e37599b04ef434 100644 (file)
@@ -5,67 +5,11 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/pinctrl/rockchip.h>
-#include "rk3566-anbernic-rg353x.dtsi"
+#include "rk3566-powkiddy-rk2023.dtsi"
 
 / {
        model = "RGB30";
        compatible = "powkiddy,rgb30", "rockchip,rk3566";
-
-       aliases {
-               mmc1 = &sdmmc0;
-               mmc2 = &sdmmc1;
-               mmc3 = &sdmmc2;
-       };
-
-       battery: battery {
-               compatible = "simple-battery";
-               charge-full-design-microamp-hours = <3151000>;
-               charge-term-current-microamp = <300000>;
-               constant-charge-current-max-microamp = <2000000>;
-               constant-charge-voltage-max-microvolt = <4250000>;
-               factory-internal-resistance-micro-ohms = <117000>;
-               voltage-max-design-microvolt = <4172000>;
-               voltage-min-design-microvolt = <3400000>;
-
-               ocv-capacity-celsius = <20>;
-               ocv-capacity-table-0 =  <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>,
-                                       <3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>,
-                                       <3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>,
-                                       <3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>,
-                                       <3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>,
-                                       <3400000 0>;
-       };
-
-       /*
-        * Channels reversed for speakers. Headphones automatically switch via hardware when
-        * detected with no ability to control output in software. Headphones appear to be mono
-        * (each output channel receives all audio). No microphone support on 3.5mm jack.
-        */
-       sound {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "rk817_ext";
-               simple-audio-card,format = "i2s";
-               simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,widgets =
-                       "Headphone", "Headphones";
-               simple-audio-card,routing =
-                       "Headphones", "HPOL",
-                       "Headphones", "HPOR";
-
-               simple-audio-card,codec {
-                       sound-dai = <&rk817>;
-               };
-
-               simple-audio-card,cpu {
-                       sound-dai = <&i2s1_8ch>;
-               };
-       };
-};
-
-/delete-node/ &adc_keys;
-
-&chosen {
-       /delete-property/ stdout-path;
 };
 
 &cru {
                               <200000000>, <292500000>;
 };
 
-&gpio_keys_control {
-       button-r1 {
-               gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
-               label = "TR";
-               linux,code = <BTN_TR>;
-       };
-
-       button-r2 {
-               gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
-               label = "TR2";
-               linux,code = <BTN_TR2>;
-       };
-};
-
-/delete-node/ &{/i2c@fdd40000/regulator@40};
-
-&i2c0 {
-       vdd_cpu: regulator@1c {
-               compatible = "tcs,tcs4525";
-               reg = <0x1c>;
-               fcs,suspend-voltage-selector = <1>;
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <712500>;
-               regulator-max-microvolt = <1390000>;
-               regulator-name = "vdd_cpu";
-               regulator-ramp-delay = <2300>;
-               vin-supply = <&vcc_sys>;
-               regulator-state-mem {
-                       regulator-off-in-suspend;
+&dsi0 {
+       panel: panel@0 {
+               compatible = "powkiddy,rgb30-panel";
+               reg = <0>;
+               backlight = <&backlight>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_rst>;
+               reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&vcc3v3_lcd0_n>;
+               iovcc-supply = <&vcc3v3_lcd0_n>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
                };
        };
 };
-
-/*
- * Device has 2 red LEDs instead of an amber and a red. Relabel LEDs as
- * red_led0 and red_led1.
- */
-/delete-node/ &{/pwm-leds/led-1};
-/delete-node/ &{/pwm-leds/led-2};
-
-&leds {
-       red_led0: led-1 {
-               color = <LED_COLOR_ID_RED>;
-               function = LED_FUNCTION_CHARGING;
-               max-brightness = <255>;
-               pwms = <&pwm7 0 25000 0>;
-       };
-
-       red_led1: led-2 {
-               color = <LED_COLOR_ID_RED>;
-               default-state = "off";
-               function = LED_FUNCTION_STATUS;
-               max-brightness = <255>;
-               pwms = <&pwm0 0 25000 0>;
-       };
-};
-
-&panel {
-       compatible = "powkiddy,rgb30-panel";
-       vcc-supply = <&vcc3v3_lcd0_n>;
-       iovcc-supply = <&vcc3v3_lcd0_n>;
-       /delete-property/ vdd-supply;
-};
-
-&pwm5 {
-       status = "disabled";
-};
-
-&rk817 {
-       rk817_charger: charger {
-               monitored-battery = <&battery>;
-               rockchip,resistor-sense-micro-ohms = <10000>;
-               rockchip,sleep-enter-current-microamp = <300000>;
-               rockchip,sleep-filter-current-microamp = <100000>;
-       };
-};
-
-/* There is no UART header visible on the board for this device. */
-&uart2 {
-       status = "disabled";
-};
-
-/delete-node/ &vibrator;
diff --git a/src/arm64/rockchip/rk3566-powkiddy-rk2023.dts b/src/arm64/rockchip/rk3566-powkiddy-rk2023.dts
new file mode 100644 (file)
index 0000000..ba32d07
--- /dev/null
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3566-powkiddy-rk2023.dtsi"
+
+/ {
+       model = "RK2023";
+       compatible = "powkiddy,rk2023", "rockchip,rk3566";
+};
+
+&cru {
+       assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
+                         <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
+       assigned-clock-rates = <32768>, <1200000000>,
+                         <200000000>, <115200000>;
+};
+
+&dsi0 {
+       panel: panel@0 {
+               compatible = "powkiddy,rk2023-panel", "newvision,nv3051d";
+               reg = <0>;
+               backlight = <&backlight>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_rst>;
+               reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&vcc3v3_lcd0_n>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-powkiddy-rk2023.dtsi b/src/arm64/rockchip/rk3566-powkiddy-rk2023.dtsi
new file mode 100644 (file)
index 0000000..0fa8f06
--- /dev/null
@@ -0,0 +1,875 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       aliases {
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc1;
+               mmc3 = &sdmmc2;
+       };
+
+       adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&adc_mux 0>,
+                             <&adc_mux 1>,
+                             <&adc_mux 2>,
+                             <&adc_mux 3>;
+               pinctrl-0 = <&joy_mux_en>;
+               pinctrl-names = "default";
+               poll-interval = <60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <1023 15>;
+                       linux,code = <ABS_X>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <15 1023>;
+                       linux,code = <ABS_RX>;
+               };
+
+               axis@2 {
+                       reg = <2>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <15 1023>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@3 {
+                       reg = <3>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <1023 15>;
+                       linux,code = <ABS_RY>;
+               };
+       };
+
+       adc_mux: adc-mux {
+               compatible = "io-channel-mux";
+               channels = "left_x", "right_x", "left_y", "right_y";
+               #io-channel-cells = <1>;
+               io-channels = <&saradc 3>;
+               io-channel-names = "parent";
+               mux-controls = <&gpio_mux>;
+               settle-time-us = <100>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&vcc_sys>;
+               pwms = <&pwm4 0 25000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <3151000>;
+               charge-term-current-microamp = <300000>;
+               constant-charge-current-max-microamp = <2000000>;
+               constant-charge-voltage-max-microvolt = <4250000>;
+               factory-internal-resistance-micro-ohms = <117000>;
+               voltage-max-design-microvolt = <4172000>;
+               voltage-min-design-microvolt = <3400000>;
+
+               ocv-capacity-celsius = <20>;
+               ocv-capacity-table-0 =  <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>,
+                                       <3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>,
+                                       <3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>,
+                                       <3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>,
+                                       <3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>,
+                                       <3400000 0>;
+       };
+
+       gpio_keys_control: gpio-keys-control {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&btn_pins_ctrl>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "TL";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "TL2";
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
+                       label = "TR";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
+                       label = "TR2";
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-right {
+                       gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-thumbl {
+                       gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
+                       label = "THUMBL";
+                       linux,code = <BTN_THUMBL>;
+               };
+
+               button-thumbr {
+                       gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "THUMBR";
+                       linux,code = <BTN_THUMBR>;
+               };
+
+               button-up {
+                       gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio_keys_vol: gpio-keys-vol {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-0 = <&btn_pins_vol>;
+               pinctrl-names = "default";
+
+               button-vol-down {
+                       gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               button-vol-up {
+                       gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       gpio_mux: mux-controller {
+               compatible = "gpio-mux";
+               mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>,
+                           <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
+               #mux-control-cells = <0>;
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               ddc-i2c-bus = <&i2c5>;
+               type = "c";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       /*
+        * Device also includes an always on LED that is wired to the 5V input
+        * voltage and is on when the device is plugged in.
+        */
+       leds: pwm-leds {
+               compatible = "pwm-leds";
+
+               green_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       max-brightness = <255>;
+                       pwms = <&pwm6 0 25000 0>;
+               };
+
+               red_led: led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_CHARGING;
+                       max-brightness = <255>;
+                       pwms = <&pwm7 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 = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
+       };
+
+       /*
+        * Channels reversed for speakers. Headphones automatically switch via hardware when
+        * detected with no ability to control output in software. Headphones appear to be mono
+        * (each output channel receives all audio). No microphone support on 3.5mm jack.
+        */
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "rk817_ext";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Headphone", "Headphones";
+               simple-audio-card,routing =
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR";
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+       };
+
+       vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-0 = <&vcc_lcd_h>;
+               pinctrl-names = "default";
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "vcc3v3_lcd0_n";
+               vin-supply = <&vcc_3v3>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc_sys: regulator-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+               regulator-name = "vcc_sys";
+       };
+
+       vcc_wifi: regulator-vcc-wifi {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vcc_wifi_h>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "vcc_wifi";
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&dsi0 {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       ports {
+               dsi0_in: port@0 {
+                       reg = <0>;
+                       dsi0_in_vp1: endpoint {
+                               remote-endpoint = <&vp1_out_dsi0>;
+                       };
+               };
+
+               dsi0_out: port@1 {
+                       reg = <1>;
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+};
+
+&dsi_dphy0 {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       ddc-i2c-bus = <&i2c5>;
+       pinctrl-0 = <&hdmitxm0_cec>;
+       pinctrl-names = "default";
+       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";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               clock-names = "mclk";
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               #clock-cells = <1>;
+               #sound-dai-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc_sys>;
+               vcc9-supply = <&dcdc_boost>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vdd_logic";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vdd_gpu";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vcc_ddr";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vcc_3v3";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda_0v9";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_acodec";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_sd";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       dcdc_boost: BOOST {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <4700000>;
+                               regulator-max-microvolt = <5400000>;
+                               regulator-name = "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>;
+               };
+       };
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1390000>;
+               regulator-name = "vdd_cpu";
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc_sys>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c5 {
+       pinctrl-0 = <&i2c5m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-0 = <&i2s1m0_sclktx
+                    &i2s1m0_lrcktx
+                    &i2s1m0_sdi0
+                    &i2s1m0_sdo0>;
+       pinctrl-names = "default";
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&pinctrl {
+       gpio-btns {
+               btn_pins_ctrl: btn-pins-ctrl {
+                       rockchip,pins =
+                               <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               btn_pins_vol: btn-pins-vol {
+                       rockchip,pins =
+                               <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       joy-mux {
+               joy_mux_en: joy-mux-en {
+                       rockchip,pins =
+                               <0 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+       };
+
+       gpio-lcd {
+               lcd_rst: lcd-rst {
+                       rockchip,pins =
+                               <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       vcc3v3-lcd {
+               vcc_lcd_h: vcc-lcd-h {
+                       rockchip,pins =
+                               <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       vcc-wifi {
+               vcc_wifi_h: vcc-wifi-h {
+                       rockchip,pins =
+                               <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc1v8_dvp>;
+       vccio7-supply = <&vcc_3v3>;
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&pwm6 {
+       status = "okay";
+};
+
+&pwm7 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &sdmmc1_det>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc1v8_dvp>;
+       status = "okay";
+};
+
+&sdmmc2 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
+       pinctrl-names = "default";
+       vmmc-supply = <&vcc_wifi>;
+       vqmmc-supply = <&vcca1v8_pmu>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>;
+       pinctrl-names = "default";
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
+               device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       phys = <&usb2phy0_otg>;
+       phy-names = "usb2-phy";
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       phy-names = "usb2-phy", "usb3-phy";
+       phys = <&usb2phy1_host>, <&combphy1 PHY_TYPE_USB3>;
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_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>;
+       };
+};
+
+&vp1 {
+       vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
+               reg = <ROCKCHIP_VOP2_EP_MIPI0>;
+               remote-endpoint = <&dsi0_in_vp1>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-powkiddy-x55.dts b/src/arm64/rockchip/rk3566-powkiddy-x55.dts
new file mode 100644 (file)
index 0000000..4786b19
--- /dev/null
@@ -0,0 +1,926 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Powkiddy x55";
+       compatible = "powkiddy,x55", "rockchip,rk3566";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc2;
+               mmc3 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       adc_joystick: adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&saradc 0>, <&saradc 1>,
+                             <&saradc 2>, <&saradc 3>;
+               poll-interval = <60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <30>;
+                       abs-fuzz = <20>;
+                       abs-range = <15 1023>;
+                       linux,code = <ABS_X>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <30>;
+                       abs-fuzz = <20>;
+                       abs-range = <1023 15>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@2 {
+                       reg = <2>;
+                       abs-flat = <30>;
+                       abs-fuzz = <20>;
+                       abs-range = <15 1023>;
+                       linux,code = <ABS_RX>;
+               };
+
+               axis@3 {
+                       reg = <3>;
+                       abs-flat = <30>;
+                       abs-fuzz = <20>;
+                       abs-range = <1023 15>;
+                       linux,code = <ABS_RY>;
+               };
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&vcc_sys>;
+               pwms = <&pwm4 0 25000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <4000000>;
+               charge-term-current-microamp = <300000>;
+               constant-charge-current-max-microamp = <2000000>;
+               constant-charge-voltage-max-microvolt = <4300000>;
+               factory-internal-resistance-micro-ohms = <91000>;
+               voltage-max-design-microvolt = <4138000>;
+               voltage-min-design-microvolt = <3400000>;
+
+               ocv-capacity-celsius = <20>;
+               ocv-capacity-table-0 =  <4138000 100>, <4083000 95>, <4059000 90>, <4044000 85>,
+                                       <4030000 80>, <4020000 75>, <4006000 70>, <3972000 65>,
+                                       <3934000 60>, <3904000 55>, <3878000 50>, <3857000 45>,
+                                       <3843000 40>, <3826000 35>, <3801000 30>, <3768000 25>,
+                                       <3735000 20>, <3688000 15>, <3621000 10>, <3553000 5>,
+                                       <3400000 0>;
+       };
+
+       gpio_keys_control: gpio-keys-control {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&btn_pins_ctrl>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
+                       label = "TL";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>;
+                       label = "TL2";
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-right {
+                       gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-thumbl {
+                       gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
+                       label = "THUMBL";
+                       linux,code = <BTN_THUMBL>;
+               };
+
+               button-thumbr {
+                       gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "THUMBR";
+                       linux,code = <BTN_THUMBR>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
+                       label = "TR";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>;
+                       label = "TR2";
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-up {
+                       gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio_keys_vol: gpio-keys-vol {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-0 = <&btn_pins_vol>;
+               pinctrl-names = "default";
+
+               button-voldown {
+                       gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               button-volup {
+                       gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       gpio_leds: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               red_led: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_STATUS;
+               };
+
+               green_led: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_POWER;
+               };
+
+               amber_led: led-2 {
+                       color = <LED_COLOR_ID_AMBER>;
+                       gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_CHARGING;
+               };
+
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               ddc-i2c-bus = <&i2c5>;
+               type = "c";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       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_PC0 GPIO_ACTIVE_LOW>;
+       };
+
+       /* Channels reversed for both headphones and speakers. */
+       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 = <&gpio4 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_8ch>;
+               };
+       };
+
+       spk_amp: audio-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&spk_amp_enable_h>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Amp";
+       };
+
+       vcc5v0_host: regulator-vcc5v0-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vcc5v0_host_en>;
+               pinctrl-names = "default";
+               regulator-name = "vcc5v0_host";
+               vin-supply = <&dcdc_boost>;
+       };
+
+       vcc_lcd: regulator-vcc-lcd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vcc_lcd_en>;
+               pinctrl-names = "default";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "vcc_lcd";
+       };
+
+       vcc_sys: regulator-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+               regulator-name = "vcc_sys";
+       };
+
+       vcc_wifi: regulator-vcc-wifi {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&vcc_wifi_h>;
+               pinctrl-names = "default";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "vcc_wifi";
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cru {
+       assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
+                         <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
+       assigned-clock-rates = <32768>, <1200000000>,
+                              <200000000>, <126400000>;
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&dsi_dphy0 {
+       status = "okay";
+};
+
+&dsi0 {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       ports {
+               dsi0_in: port@0 {
+                       reg = <0>;
+                       dsi0_in_vp1: endpoint {
+                               remote-endpoint = <&vp1_out_dsi0>;
+                       };
+               };
+
+               dsi0_out: port@1 {
+                       reg = <1>;
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+
+       panel: panel@0 {
+               compatible = "powkiddy,x55-panel", "himax,hx8394";
+               reg = <0>;
+               backlight = <&backlight>;
+               iovcc-supply = <&vcc_lcd>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_rst>;
+               reset-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
+               rotation = <270>;
+               vcc-supply = <&vcc_lcd>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       ddc-i2c-bus = <&i2c5>;
+       pinctrl-0 = <&hdmitxm0_cec>;
+       pinctrl-names = "default";
+       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";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               clock-names = "mclk";
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
+               wakeup-source;
+               #clock-cells = <1>;
+               #sound-dai-cells = <0>;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc_sys>;
+               vcc9-supply = <&dcdc_boost>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vdd_logic";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vdd_gpu";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vcc_ddr";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vcc_3v3";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda_0v9";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_acodec";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_sd";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       dcdc_boost: BOOST {
+                               regulator-min-microvolt = <4700000>;
+                               regulator-max-microvolt = <5400000>;
+                               regulator-name = "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 = <150000>;
+                       rockchip,sleep-filter-current-microamp = <100000>;
+               };
+
+       };
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1390000>;
+               regulator-name = "vdd_cpu";
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc_sys>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c5 {
+       pinctrl-0 = <&i2c5m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-0 = <&i2s1m0_sclktx>, <&i2s1m0_lrcktx>, <&i2s1m0_sdi0>,
+                   <&i2s1m0_sdo0>;
+       pinctrl-names = "default";
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&pinctrl {
+       audio-amplifier {
+               spk_amp_enable_h: spk-amp-enable-h {
+                       rockchip,pins =
+                               <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gpio-control {
+               btn_pins_ctrl: btn-pins-ctrl {
+                       rockchip,pins =
+                               <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               btn_pins_vol: btn-pins-vol {
+                       rockchip,pins =
+                               <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-lcd {
+               lcd_rst: lcd-rst {
+                       rockchip,pins =
+                               <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gpio-leds {
+               led_pins: led-pins {
+                       rockchip,pins =
+                               <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hp-detect {
+               hp_det: hp-det {
+                       rockchip,pins =
+                               <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins =
+                               <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               vcc5v0_otg_en: vcc5v0-otg-en {
+                       rockchip,pins =
+                               <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       vcc-lcd {
+               vcc_lcd_en: vcc-lcd-en {
+                       rockchip,pins =
+                               <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       vcc-wifi {
+               vcc_wifi_h: vcc-wifi-h {
+                       rockchip,pins =
+                               <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcca1v8_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcca1v8_pmu>;
+       vccio5-supply = <&vcc2v8_dvp>;
+       vccio6-supply = <&vcc1v8_dvp>;
+       vccio7-supply = <&vcc_3v3>;
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>,
+                   <&emmc_datastrobe>, <&emmc_rstnout>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-0 = <&sdmmc0_bus4>, <&sdmmc0_clk>, <&sdmmc0_cmd>,
+                   <&sdmmc0_det>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       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-0 = <&sdmmc1_bus4>, <&sdmmc1_cmd>, <&sdmmc1_clk>;
+       pinctrl-names = "default";
+       vmmc-supply = <&vcc_wifi>;
+       status = "okay";
+};
+
+&sdmmc2 {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-0 = <&sdmmc2m1_bus4>, <&sdmmc2m1_cmd>, <&sdmmc2m1_clk>,
+                   <&sdmmc2m1_det>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       vqmmc-supply = <&vcc2v8_dvp>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&uart1m0_xfer>, <&uart1m0_ctsn>, <&uart1m0_rtsn>;
+       pinctrl-names = "default";
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
+               device-wake-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       phys = <&usb2phy0_otg>;
+       phy-names = "usb2-phy";
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_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>;
+       };
+};
+
+&vp1 {
+       vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
+               reg = <ROCKCHIP_VOP2_EP_MIPI0>;
+               remote-endpoint = <&dsi0_in_vp1>;
+       };
+};
index 854d02b46e6fcd72144b57a30079513767a07180..59843a7a199c24a2ceabcd9a15c9a990525cb31c 100644 (file)
@@ -31,8 +31,9 @@
        fan: gpio_fan {
                compatible = "gpio-fan";
                gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <0    0
-                                     4500 1>;
+               gpio-fan,speed-map =
+                               <   0 0>,
+                               <4500 1>;
                pinctrl-names = "default";
                pinctrl-0 = <&fan_en_h>;
                #cooling-cells = <2>;
index 1b1c67d5b1ef335ed546ec7bea07b8a611da83e9..3ae24e39450a2d30e4101ae0fe44bd97395781ec 100644 (file)
@@ -14,6 +14,7 @@
        compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566";
 
        aliases {
+               ethernet0 = &gmac1;
                mmc1 = &sdmmc0;
        };
 
index 938092fce18661f354294c815683923a8888dbfd..63eea27293fe939f46a1a269210777901938c440 100644 (file)
@@ -12,6 +12,7 @@
        compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566";
 
        aliases {
+               ethernet0 = &gmac1;
                mmc0 = &sdmmc0;
                mmc1 = &sdhci;
                mmc2 = &sdmmc1;
index 4e49bebf548b48f9780652251708ee05703cc3d7..fdbf1c78324229b81715279e4182e39bb3cde176 100644 (file)
        model = "PINE64 RK3566 SOQuartz on Blade carrier board";
        compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566";
 
+       aliases {
+               ethernet0 = &gmac1;
+       };
+
        /* labeled VCC3V0_SD in schematic to not conflict with PMIC regulator */
        vcc3v0_sd: vcc3v0-sd-regulator {
                compatible = "regulator-fixed";
index cddf6cd2fecb1bf34458a98adc93b59560f98fde..6ed3fa4aee34f22a0b09f189000800331a49b2aa 100644 (file)
@@ -8,6 +8,10 @@
        model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
        compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
 
+       aliases {
+               ethernet0 = &gmac1;
+       };
+
        /* labeled +12v in schematic */
        vcc12v_dcin: vcc12v-dcin-regulator {
                compatible = "regulator-fixed";
index 2208dbfb7f0a3c3a0935c79c69709d5e7acff6b3..f2095dfa4eaf6efe2d4c46d2dd78f68fa266ff7f 100644 (file)
@@ -8,6 +8,10 @@
        model = "PINE64 RK3566 SOQuartz on Model A carrier board";
        compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566";
 
+       aliases {
+               ethernet0 = &gmac1;
+       };
+
        /* labeled DCIN_12V in schematic */
        vcc12v_dcin: vcc12v-dcin-regulator {
                compatible = "regulator-fixed";
index 63bae36b8f7e7d621b8961182e5a799bd5d05f5a..bfb7b952f4c5e849ed243c53ff3abef5cfb3c4d8 100644 (file)
@@ -12,7 +12,6 @@
        compatible = "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
-               ethernet0 = &gmac1;
                mmc0 = &sdmmc0;
                mmc1 = &sdhci;
                mmc2 = &sdmmc1;
diff --git a/src/arm64/rockchip/rk3588-coolpi-cm5-evb.dts b/src/arm64/rockchip/rk3588-coolpi-cm5-evb.dts
new file mode 100644 (file)
index 0000000..a4946cd
--- /dev/null
@@ -0,0 +1,216 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "rk3588-coolpi-cm5.dtsi"
+
+/ {
+       model = "RK3588 CoolPi CM5 EVB";
+       compatible = "coolpi,pi-cm5-evb", "coolpi,pi-cm5", "rockchip,rk3588";
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_en>;
+               power-supply = <&vcc12v_dcin>;
+               pwms = <&pwm2 0 25000 0>;
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+
+               green_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       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>;
+       };
+
+       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>;
+       };
+
+       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 = <&vcc12v_dcin>;
+       };
+
+       vcc3v3_lcd: vcc3v3-lcd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_lcd";
+               enable-active-high;
+               gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcdpwr_en>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc5v0_usb_host1: vcc5v0_usb_host2: vcc5v0-usb-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_pwren>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb30_otg: vcc5v0-usb30-otg-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_otg";
+               regulator-boot-on;
+               regulator-always-on;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_otg_pwren>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+/* M.2 E-Key */
+&pcie2x1l1 {
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_clkreq &pcie_wake &pcie_rst &wifi_pwron &bt_pwron>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+/* Standard pcie */
+&pcie3x2 {
+       reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+/* M.2 M-Key ssd */
+&pcie3x4 {
+       num-lanes = <2>;
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+&pinctrl {
+       lcd {
+               lcdpwr_en: lcdpwr-en {
+                       rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bl_en: bl-en {
+                       rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               usb_host_pwren: usb-host-pwren {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               usb_otg_pwren: usb-otg-pwren {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       wifi {
+               bt_pwron: bt-pwron {
+                       rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_clkreq: pcie-clkreq {
+                       rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_rst: pcie-rst {
+                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               wifi_pwron: wifi-pwron {
+                       rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_wake: pcie-wake {
+                       rockchip,pins = <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&sata1 {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_usb_host1>;
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_usb_host2>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-coolpi-cm5.dtsi b/src/arm64/rockchip/rk3588-coolpi-cm5.dtsi
new file mode 100644 (file)
index 0000000..cce1c8e
--- /dev/null
@@ -0,0 +1,650 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3588.dtsi"
+
+/ {
+       compatible = "coolpi,pi-cm5", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio;
+               serial2 = &uart2;
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_8ch_p0>;
+               label = "rk3588-es8316";
+               routing = "MIC2", "Mic Jack",
+                         "Headphones", "HPOL",
+                         "Headphones", "HPOR";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphones";
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       avdd0v85_pcie20: avdd0v85-pcie20-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "avdd0v85_pcie20";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <850000>;
+               vin-supply = <&vdd_0v85_s0>;
+       };
+
+       avdd1v8_pcie20: avdd1v8-pcie20-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "avdd1v8_pcie20";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       avdd0v75_pcie30: avdd0v75-pcie30-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "avdd0v75_pcie30";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <750000>;
+               regulator-max-microvolt = <750000>;
+               vin-supply = <&avdd_0v75_s0>;
+       };
+
+       pcie30_avdd1v8: avdd1v8-pcie30-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie30_avdd1v8";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+};
+
+&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>;
+};
+
+&gmac0 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy>;
+       phy-mode = "rgmii-rxid";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_tx_bus2
+                    &gmac0_rx_bus2
+                    &gmac0_rgmii_clk
+                    &gmac0_rgmii_bus>;
+       pinctrl-names = "default";
+       rx_delay = <0x00>;
+       tx_delay = <0x43>;
+       status = "okay";
+};
+
+&i2c0 {
+       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";
+
+       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 = <&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_PD4 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hym8563_int>;
+               wakeup-source;
+       };
+};
+
+&i2c7 {
+       pinctrl-0 = <&i2c7m0_xfer>;
+       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-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>;
+               };
+       };
+};
+
+&mdio0 {
+       rgmii_phy: ethernet-phy@1 {
+               /* YT8531C/H */
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&yt8531_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
+       };
+};
+
+/* ethernet */
+&pcie2x1l2 {
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&yt6801_isolate>;
+       status = "okay";
+};
+
+&pinctrl {
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       yt6801 {
+               yt6801_isolate: yt6801-isolate {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       yt8531 {
+               yt8531_rst: yt8531-rst {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sdio;
+       no-sd;
+       non-removable;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       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";
+               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>;
+               spi-max-frequency = <1000000>;
+               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_2v0_pldo_s3>;
+               vcc14-supply = <&vcc_2v0_pldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       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 b5154389207873c90be593ecdd60c9765b3ea070..be6a4f4f90f68bb98decaf12070e5f8a9670b500 100644 (file)
        compatible = "edgeble,neural-compute-module-6a-io",
                     "edgeble,neural-compute-module-6a", "rockchip,rk3588";
 
-       aliases {
-               serial2 = &uart2;
-       };
-
        chosen {
                stdout-path = "serial2:1500000n8";
        };
index 9933765e40979073166f6f8cc4760e8452c6cf48..070baeb63431f960345f5622e1a1ee3a3df1b1ca 100644 (file)
@@ -9,13 +9,9 @@
 
 / {
        model = "Edgeble Neu6B IO Board";
-       compatible = "edgeble,neural-compute-module-6b-io",
+       compatible = "edgeble,neural-compute-module-6a-io",
                     "edgeble,neural-compute-module-6b", "rockchip,rk3588";
 
-       aliases {
-               serial2 = &uart2;
-       };
-
        chosen {
                stdout-path = "serial2:1500000n8";
        };
index b9d789d57862c2def973671cb4de41ea91b0bba5..de30c2632b8e5fc8cc6d89272269353676b1e1a3 100644 (file)
@@ -16,8 +16,8 @@
        compatible = "rockchip,rk3588-evb1-v10", "rockchip,rk3588";
 
        aliases {
+               ethernet0 = &gmac0;
                mmc0 = &sdhci;
-               serial2 = &uart2;
        };
 
        chosen {
                };
        };
 
+       analog-sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               simple-audio-card,name = "RK3588 EVB1 Audio";
+               simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
+               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_PD5 GPIO_ACTIVE_LOW>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,pin-switches = "Headphones", "Speaker";
+               simple-audio-card,routing =
+                       "Speaker Amplifier INL", "LOUT2",
+                       "Speaker Amplifier INR", "ROUT2",
+                       "Speaker", "Speaker Amplifier OUTL",
+                       "Speaker", "Speaker Amplifier OUTR",
+                       "Headphones Amplifier INL", "LOUT1",
+                       "Headphones Amplifier INR", "ROUT1",
+                       "Headphones", "Headphones Amplifier OUTL",
+                       "Headphones", "Headphones Amplifier OUTR",
+                       "LINPUT1", "Onboard Microphone",
+                       "RINPUT1", "Onboard Microphone",
+                       "LINPUT2", "Microphone Jack",
+                       "RINPUT2", "Microphone Jack";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Microphone", "Onboard Microphone",
+                       "Headphone", "Headphones",
+                       "Speaker", "Speaker";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&es8388>;
+                       system-clock-frequency = <12288000>;
+               };
+       };
+
+       amp_headphone: headphone-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&headphone_amplifier_en>;
+               sound-name-prefix = "Headphones Amplifier";
+       };
+
+       amp_speaker: speaker-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&speaker_amplifier_en>;
+               sound-name-prefix = "Speaker Amplifier";
+       };
+
        backlight: backlight {
                compatible = "pwm-backlight";
                power-supply = <&vcc12v_dcin>;
        };
 };
 
+&i2c7 {
+       status = "okay";
+
+       es8388: audio-codec@11 {
+               compatible = "everest,es8388";
+               reg = <0x11>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               AVDD-supply = <&avcc_1v8_codec_s0>;
+               DVDD-supply = <&avcc_1v8_codec_s0>;
+               HPVDD-supply = <&vcc_3v3_s0>;
+               PVDD-supply = <&vcc_3v3_s0>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+};
+
 &mdio0 {
        rgmii_phy: ethernet-phy@1 {
                /* RTL8211F */
 };
 
 &pinctrl {
+       audio {
+               hp_detect: headphone-detect {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               headphone_amplifier_en: headphone-amplifier-en {
+                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               speaker_amplifier_en: speaker-amplifier-en {
+                       rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        rtl8111 {
                rtl8111_isolate: rtl8111-isolate {
                        rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
                pinctrl-names = "default";
                spi-max-frequency = <1000000>;
+               system-power-controller;
 
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
diff --git a/src/arm64/rockchip/rk3588-jaguar.dts b/src/arm64/rockchip/rk3588-jaguar.dts
new file mode 100644 (file)
index 0000000..39d6500
--- /dev/null
@@ -0,0 +1,802 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
+ */
+
+/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 <dt-bindings/usb/pd.h>
+#include "rk3588.dtsi"
+
+/ {
+       model = "Theobroma Systems RK3588-SBC Jaguar";
+       compatible = "tsd,rk3588-jaguar", "rockchip,rk3588";
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               /* Can be controlled through SW2 but also GPIO1 on CP2102 on P20 */
+               button-bios-disable {
+                       label = "BIOS_DISABLE";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <0>;
+               };
+       };
+
+       aliases {
+               ethernet0 = &gmac0;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+               rtc0 = &rtc_twi;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       /* DCIN is 12-24V but standard is 12V */
+       dc_12v: dc-12v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       emmc_pwrseq: emmc-pwrseq {
+               compatible = "mmc-pwrseq-emmc";
+               pinctrl-0 = <&emmc_reset>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led1_pin>;
+
+               /* LED1 on PCB */
+               led-1 {
+                       gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       linux,default-trigger = "heartbeat";
+                       color = <LED_COLOR_ID_AMBER>;
+               };
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
+       };
+
+       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>;
+       };
+
+       vcc_1v2_s3: vcc-1v2-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v2_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       /* Exposed on P14 and P15 */
+       vcc_2v8_s3: vcc-2v8-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_2v8_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc_5v0_usb_a: vcc-5v0-usb-a-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_a_vcc";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+               gpio = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vcc_5v0_usb_c1: vcc-5v0-usb-c1-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "5v_usbc1";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+               gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vcc_5v0_usb_c2: vcc-5v0-usb-c2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "5v_usbc2";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+               gpio = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vcc3v3_mdot2: vcc3v3-mdot2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_mdot2";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       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 = <&dc_12v>;
+       };
+
+       vcc5v0_usb: vcc5v0-usb-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&combphy1_ps {
+       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>;
+};
+
+&gmac0 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy>;
+       phy-mode = "rgmii";
+       phy-supply = <&vcc_1v2_s3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_rx_bus2
+                    &gmac0_tx_bus2
+                    &gmac0_rgmii_clk
+                    &gmac0_rgmii_bus
+                    &eth0_pins
+                    &eth_reset>;
+       tx_delay = <0x10>;
+       rx_delay = <0x10>;
+       snps,reset-gpio = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 100000>;
+
+       status = "okay";
+};
+
+&gpio1 {
+       mdot2e-w-disable1-n-hog {
+               gpios = <RK_PB1 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m.2 E-key W_DISABLE1#";
+               gpio-hog;
+       };
+};
+
+&gpio4 {
+       mdot2e-w-disable2-n-hog {
+               gpios = <RK_PC1 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m.2 E-key W_DISABLE2#";
+               gpio-hog;
+       };
+};
+
+&i2c0 {
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       fan@18 {
+               compatible = "ti,amc6821";
+               reg = <0x18>;
+       };
+
+       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 = <&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;
+               };
+       };
+
+       rtc_twi: rtc@6f {
+               compatible = "isil,isl1208";
+               reg = <0x6f>;
+       };
+};
+
+&i2c1 {
+       pinctrl-0 = <&i2c1m4_xfer>;
+};
+
+&i2c6 {
+       pinctrl-0 = <&i2c6m4_xfer>;
+};
+
+&i2c7 {
+       status = "okay";
+
+       /* SE050 Secure Element at 0x48; GPIO1_A4 for enable pin */
+
+       /* Also on 0x55 */
+       eeprom@54 {
+               compatible = "st,24c04", "atmel,24c04";
+               reg = <0x54>;
+               pagesize = <16>;
+               vcc-supply = <&vcc_3v3_s3>;
+       };
+};
+
+&i2c8 {
+       pinctrl-0 = <&i2c8m2_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;
+               };
+       };
+};
+
+&mdio0 {
+       rgmii_phy: ethernet-phy@6 {
+               /* KSZ9031 or KSZ9131 */
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x6>;
+               clocks = <&cru REFCLKO25M_ETH0_OUT>;
+       };
+};
+
+&pcie2x1l0 {
+       reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; /* WIFI_PERST0# */
+       vpcie3v3-supply = <&vcc3v3_mdot2>;
+       status = "okay";
+};
+
+&pinctrl {
+       emmc {
+               emmc_reset: emmc-reset {
+                       rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ethernet {
+               eth_reset: eth-reset {
+                       rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led1_pin: led1-pin {
+                       rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       mmc-pwrseq = <&emmc_pwrseq>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_data_strobe>;
+       supports-cqe;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vcc_1v8_s3>;
+       status = "okay";
+};
+
+&sdmmc {
+       broken-cd;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-ddr50;
+       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";
+               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>;
+               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>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       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: 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: dcdc-reg2 {
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-name = "vdd_log_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: dcdc-reg4 {
+                               regulator-name = "vdd_vdenc_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-name = "vdd_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-name = "vdd2_ddr_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-name = "vdd_2v0_pldo_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-name = "vcc_3v3_s3";
+                               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>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-name = "vddq_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-name = "vcc_1v8_s3";
+                               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>;
+                               };
+                       };
+
+                       vcca_1v8_s0: pldo-reg1 {
+                               regulator-name = "vcca_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-name = "vcc_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdda_1v2_s0: pldo-reg3 {
+                               regulator-name = "vdda_1v2_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca_3v3_s0: pldo-reg4 {
+                               regulator-name = "vcca_3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-name = "vccio_sd_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-name = "pldo6_s3";
+                               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>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-name = "vdd_0v75_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdda_ddr_pll_s0: nldo-reg2 {
+                               regulator-name = "vdda_ddr_pll_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdda_0v75_s0: nldo-reg3 {
+                               regulator-name = "vdda_0v75_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v85_s0: nldo-reg4 {
+                               regulator-name = "vdda_0v85_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-name = "vdd_0v75_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc_5v0_usb_a>;
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+/* Mule-ATtiny debug UART; typically baudrate 9600 */
+&uart0 {
+       pinctrl-0 = <&uart0m0_xfer>;
+       status = "okay";
+};
+
+/* Main debug interface on P20 micro-USB B port and P21 header */
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+/* RS485 on P19 */
+&uart3 {
+       pinctrl-0 = <&uart3m2_xfer &uart3_rtsn>;
+       linux,rs485-enabled-at-boot-time;
+       status = "okay";
+};
+
+/* Mule-ATtiny UPDI flashing UART */
+&uart7 {
+       pinctrl-0 = <&uart7m0_xfer>;
+       status = "okay";
+};
+
+/* host0 on P10 USB-A */
+&usb_host0_ehci {
+       status = "okay";
+};
+
+/* host0 on P10 USB-A */
+&usb_host0_ohci {
+       status = "okay";
+};
+
+/* host1 on M.2 E-key */
+&usb_host1_ehci {
+       status = "okay";
+};
+
+/* host1 on M.2 E-key */
+&usb_host1_ohci {
+       status = "okay";
+};
index 97af4f912828543c0b5fb12fd3cf7ad75399b92c..997b516c2533c1d1fe2db05f2b9df2ad5588e278 100644 (file)
@@ -19,7 +19,6 @@
        aliases {
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
-               serial2 = &uart2;
        };
 
        chosen {
        cpu-supply = <&vdd_cpu_lit_s0>;
 };
 
-&cpu_b0{
+&cpu_b0 {
        cpu-supply = <&vdd_cpu_big0_s0>;
 };
 
-&cpu_b1{
+&cpu_b1 {
        cpu-supply = <&vdd_cpu_big0_s0>;
 };
 
-&cpu_b2{
+&cpu_b2 {
        cpu-supply = <&vdd_cpu_big1_s0>;
 };
 
-&cpu_b3{
+&cpu_b3 {
        cpu-supply = <&vdd_cpu_big1_s0>;
 };
 
 };
 
 &sdmmc {
-       max-frequency = <200000000>;
-       no-sdio;
-       no-mmc;
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
        disable-wp;
+       no-mmc;
+       no-sdio;
        sd-uhs-sdr104;
        vmmc-supply = <&vcc_3v3_s3>;
        vqmmc-supply = <&vccio_sd_s0>;
                pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
 
+               system-power-controller;
+
                vcc1-supply = <&vcc4v0_sys>;
                vcc2-supply = <&vcc4v0_sys>;
                vcc3-supply = <&vcc4v0_sys>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index 298c183d6f4fc9b5e8110a956551156f350b6325..3e660ff6cd5ff3d966356667e5b7db80a298da3b 100644 (file)
@@ -19,7 +19,6 @@
        aliases {
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
-               serial2 = &uart2;
        };
 
        chosen {
index 5c59f9571dce6ebb9cfd5c52a411b7fc4de4da4c..87a0abf95f7d4f9ac0846c61a7ad18ba6cdabea1 100644 (file)
@@ -17,9 +17,9 @@
        compatible = "pine64,quartzpro64", "rockchip,rk3588";
 
        aliases {
+               ethernet0 = &gmac0;
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
-               serial2 = &uart2;
        };
 
        chosen {
index 741f631db345f0095a6e6f5e21bb5d2e400b30fc..a0e303c3a1dc6d839528188571cb53c2759535fa 100644 (file)
@@ -14,7 +14,6 @@
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
                mmc2 = &sdio;
-               serial2 = &uart2;
        };
 
        chosen {
        status = "okay";
 };
 
+&combphy2_psu {
+       status = "okay";
+};
+
 &cpu_b0 {
        cpu-supply = <&vdd_cpu_big0_s0>;
 };
                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";
                };
 
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usb_host2_xhci {
+       status = "okay";
+};
index d88c0e852356518a95f9dd9d8bb1c5bccd999384..dc08da518a76d13cc4841c44a8844a348785f023 100644 (file)
@@ -19,8 +19,6 @@
        aliases {
                ethernet0 = &gmac1;
                mmc0 = &sdhci;
-               serial2 = &uart2;
-               serial9 = &uart9;
        };
 
        fan: pwm-fan {
diff --git a/src/arm64/rockchip/rk3588s-coolpi-4b.dts b/src/arm64/rockchip/rk3588s-coolpi-4b.dts
new file mode 100644 (file)
index 0000000..e037bf9
--- /dev/null
@@ -0,0 +1,812 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
+ *
+ * https://cool-pi.com/topic/130/coolpi-4b-product-spec-introduction
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3588s.dtsi"
+
+/ {
+       model = "RK3588S CoolPi 4 Model B";
+       compatible = "coolpi,pi-4b", "rockchip,rk3588s";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio;
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_8ch_p0>;
+               label = "rk3588-es8316";
+               routing = "MIC2", "Mic Jack",
+                         "Headphones", "HPOL",
+                         "Headphones", "HPOR";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphones";
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_leds>;
+
+               led0: led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: led-red {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_WLAN;
+                       gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&hym8563>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
+       };
+
+       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>;
+       };
+
+       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>;
+       };
+
+       vcc5v0_usbdcin: vcc5v0-usbdcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usbdcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_usb: vcc5v0-usb-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usbdcin>;
+       };
+
+       avdd0v85_pcie20: avdd0v85-pcie20-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "avdd0v85_pcie20";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <850000>;
+               vin-supply = <&vdd_0v85_s0>;
+       };
+
+       avdd1v8_pcie20: avdd1v8-pcie20-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "avdd1v8_pcie20";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       vcc3v3_mipi: vcc3v3-mipi-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc3v3_mipi";
+               regulator-boot-on;
+               regulator-always-on;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_otg: vcc5v0-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_u3host_en>;
+               regulator-name = "vcc5v0_otg";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&i2c0 {
+       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";
+
+       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 = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c6 {
+       pinctrl-0 = <&i2c6m3_xfer>;
+       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>;
+       };
+};
+
+&i2c7 {
+       pinctrl-0 = <&i2c7m0_xfer>;
+       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-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>;
+               };
+       };
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&rtl8111_isolate>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pinctrl {
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       led {
+               gpio_leds: gpio-leds {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>,
+                                       <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       rtl8111 {
+               rtl8111_isolate: rtl8111-isolate {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               vcc5v0_u3host_en: vcc5v0-u3host-en {
+                       rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wireless-bluetooth {
+               bt_reset_gpio: bt-reset-pin {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_gpio: bt-wake-pin {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_irq: bt-wake-host-irq {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       wireless-wlan {
+               wifi_host_wake_irq: wifi-host-wake-irq {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               wifi_poweren_pin: wifi-poweren-pin {
+                       rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm2 {
+       pinctrl-0 = <&pwm2m1_pins>;
+       status = "okay";
+};
+
+&pwm13 {
+       pinctrl-names = "active";
+       pinctrl-0 = <&pwm13m2_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sdio;
+       no-sd;
+       non-removable;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       max-frequency = <150000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-sd;
+       no-mmc;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdiom1_pins>,<&wifi_poweren_pin>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       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";
+               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>;
+               spi-max-frequency = <1000000>;
+               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_pwrctrl2";
+                       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-name = "vdd_gpu_s0";
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-name = "vdd_log_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               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-name = "vdd_vdenc_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-name = "vdd_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-name = "vdd2_ddr_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-name = "vdd_2v0_pldo_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-name = "vcc_3v3_s3";
+                               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>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-name = "vddq_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-name = "vcc_1v8_s3";
+                               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>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-name = "avcc_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-name = "vcc_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-name = "avdd_1v2_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-name = "vcc_3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-name = "vccio_sd_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-name = "pldo6_s3";
+                               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>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-name = "vdd_0v75_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-name = "vdd_ddr_pll_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-name = "avdd_0v75_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-name = "vdd_0v85_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-name = "vdd_0v75_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+/* bt */
+&uart9 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn>;
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
index 60f00ceb630e14e5734c71c7e974712982265f2f..3c227888685192456ec7b4e9d348f187f3259063 100644 (file)
@@ -44,7 +44,6 @@
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
                mmc2 = &sdio;
-               serial2 = &uart2;
        };
 
        chosen {
 
 &gpio1 {
        gpio-line-names = /* GPIO1 A0-A7 */
-                         "HEADER_27_3v3", "HEADER_28_3v3", "", "",
+                         "HEADER_27_3v3", "", "", "",
                          "HEADER_29_1v8", "", "HEADER_7_1v8", "",
                          /* GPIO1 B0-B7 */
                          "", "HEADER_31_1v8", "HEADER_33_1v8", "",
                          "HEADER_11_1v8", "HEADER_13_1v8", "", "",
                          /* GPIO1 C0-C7 */
-                         "", "", "", "",
+                         "", "HEADER_28_3v3", "", "",
                          "", "", "", "",
                          /* GPIO1 D0-D7 */
                          "", "", "", "",
 
 &gpio4 {
        gpio-line-names = /* GPIO4 A0-A7 */
-                         "", "", "HEADER_37_3v3", "HEADER_32_3v3",
-                         "HEADER_36_3v3", "", "HEADER_35_3v3", "HEADER_38_3v3",
+                         "", "", "HEADER_37_3v3", "HEADER_8_3v3",
+                         "HEADER_10_3v3", "", "HEADER_32_3v3", "HEADER_35_3v3",
                          /* GPIO4 B0-B7 */
                          "", "", "", "HEADER_40_3v3",
-                         "HEADER_8_3v3", "HEADER_10_3v3", "", "",
+                         "HEADER_38_3v3", "HEADER_36_3v3", "", "",
                          /* GPIO4 C0-C7 */
                          "", "", "", "",
                          "", "", "", "",
index 82478a45253371e38b74b733c0594842a9416da0..f53e993c785edbf25a31e0d30bf945ebe78d6934 100644 (file)
@@ -12,7 +12,6 @@
 
        aliases {
                mmc0 = &sdhci;
-               serial2 = &uart2;
        };
 
        chosen {
index e3a839a12dc6f07bb4247fc30bb2af18b15d4ac2..25de4362af386747983e810d650d74c2afaa67fd 100644 (file)
@@ -13,8 +13,8 @@
        compatible = "xunlong,orangepi-5", "rockchip,rk3588s";
 
        aliases {
+               ethernet0 = &gmac1;
                mmc0 = &sdmmc;
-               serial2 = &uart2;
        };
 
        chosen {
                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>;
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usb_host2_xhci {
+       status = "okay";
+};
index 8347adcbd00301770170571d11bb0f782956b18a..2002fd0221fa30cf2b81afcab5bf600dd8328ae1 100644 (file)
@@ -12,9 +12,9 @@
        compatible = "radxa,rock-5a", "rockchip,rk3588s";
 
        aliases {
+               ethernet0 = &gmac1;
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
-               serial2 = &uart2;
        };
 
        analog-sound {
        };
 };
 
+&combphy2_psu {
+       status = "okay";
+};
+
 &cpu_b0 {
        cpu-supply = <&vdd_cpu_big0_s0>;
 };
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usb_host2_xhci {
+       status = "okay";
+};
index 8aa0499f9b032d3a2da92d416421e56df15e9f06..36b1b7acfe6a15042600a595875054744d48f257 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               gpio4 = &gpio4;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+               i2c7 = &i2c7;
+               i2c8 = &i2c8;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               serial6 = &uart6;
+               serial7 = &uart7;
+               serial8 = &uart8;
+               serial9 = &uart9;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               spi4 = &spi4;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                #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>,
                reg = <0x0 0xfd58c000 0x0 0x1000>;
        };
 
+       vop_grf: syscon@fd5a4000 {
+               compatible = "rockchip,rk3588-vop-grf", "syscon";
+               reg = <0x0 0xfd5a4000 0x0 0x2000>;
+       };
+
+       vo1_grf: syscon@fd5a8000 {
+               compatible = "rockchip,rk3588-vo-grf", "syscon";
+               reg = <0x0 0xfd5a8000 0x0 0x100>;
+       };
+
        php_grf: syscon@fd5b0000 {
                compatible = "rockchip,rk3588-php-grf", "syscon";
                reg = <0x0 0xfd5b0000 0x0 0x1000>;
                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>;
                                reg = <RK3588_PD_USB>;
                                clocks = <&cru PCLK_PHP_ROOT>,
                                         <&cru ACLK_USB_ROOT>,
+                                        <&cru ACLK_USB>,
                                         <&cru HCLK_USB_ROOT>,
                                         <&cru HCLK_HOST0>,
                                         <&cru HCLK_HOST_ARB0>,
index 024be594c47d1716642e40064d5ed5585cdb0c51..dbdb79f8e959be71d34678370af02df0ca6b28a5 100644 (file)
@@ -96,7 +96,7 @@
 
                CPU6: cpu@600 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a55";
+                       compatible = "arm,cortex-a75";
                        reg = <0x0 0x600>;
                        enable-method = "psci";
                        cpu-idle-states = <&CORE_PD>;
 
                CPU7: cpu@700 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a55";
+                       compatible = "arm,cortex-a75";
                        reg = <0x0 0x700>;
                        enable-method = "psci";
                        cpu-idle-states = <&CORE_PD>;
 
        idle-states {
                entry-method = "psci";
-               CORE_PD: core-pd {
+               CORE_PD: cpu-pd {
                        compatible = "arm,idle-state";
                        entry-latency-us = <4000>;
                        exit-latency-us = <4000>;
                        pll2: clock-controller@0 {
                                compatible = "sprd,ums512-gc-pll";
                                reg = <0x0 0x100>;
+                               clocks = <&ext_26m>;
                                clock-names = "ext-26m";
                                #clock-cells = <1>;
                        };
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f040000 0 0x1000>;
                        cpu = <&CPU0>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f140000 0 0x1000>;
                        cpu = <&CPU1>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f240000 0 0x1000>;
                        cpu = <&CPU2>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f340000 0 0x1000>;
                        cpu = <&CPU3>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f440000 0 0x1000>;
                        cpu = <&CPU4>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f540000 0 0x1000>;
                        cpu = <&CPU5>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f640000 0 0x1000>;
                        cpu = <&CPU6>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
                        compatible = "arm,coresight-etm4x", "arm,primecell";
                        reg = <0 0x3f740000 0 0x1000>;
                        cpu = <&CPU7>;
-                       clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
-                       clock-names = "apb_pclk", "clk_cs", "cs_src";
+                       clocks = <&ext_26m>;
+                       clock-names = "apb_pclk";
 
                        out-ports {
                                port {
diff --git a/src/arm64/sprd/ums9620-2h10.dts b/src/arm64/sprd/ums9620-2h10.dts
new file mode 100644 (file)
index 0000000..b356711
--- /dev/null
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Unisoc UMS9620-2h10 board DTS file
+ *
+ * Copyright (C) 2023, Unisoc Inc.
+ */
+
+/dts-v1/;
+
+#include "ums9620.dtsi"
+
+/ {
+       model = "Unisoc UMS9620-2H10 Board";
+
+       compatible = "sprd,ums9620-2h10", "sprd,ums9620";
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x2 0x00000000>;
+       };
+
+       chosen {
+               stdout-path = "serial1:921600n8";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
diff --git a/src/arm64/sprd/ums9620.dtsi b/src/arm64/sprd/ums9620.dtsi
new file mode 100644 (file)
index 0000000..2191f0a
--- /dev/null
@@ -0,0 +1,245 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Unisoc UMS9620 DTS file
+ *
+ * Copyright (C) 2023, Unisoc Inc.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&CPU0>;
+                               };
+                               core1 {
+                                       cpu = <&CPU1>;
+                               };
+                               core2 {
+                                       cpu = <&CPU2>;
+                               };
+                               core3 {
+                                       cpu = <&CPU3>;
+                               };
+                               core4 {
+                                       cpu = <&CPU4>;
+                               };
+                               core5 {
+                                       cpu = <&CPU5>;
+                               };
+                               core6 {
+                                       cpu = <&CPU6>;
+                               };
+                               core7 {
+                                       cpu = <&CPU7>;
+                               };
+                       };
+               };
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&LIT_CORE_PD>;
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&LIT_CORE_PD>;
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&LIT_CORE_PD>;
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&LIT_CORE_PD>;
+               };
+
+               CPU4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&BIG_CORE_PD>;
+               };
+
+               CPU5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&BIG_CORE_PD>;
+               };
+
+               CPU6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0 0x600>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&BIG_CORE_PD>;
+               };
+
+               CPU7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x0 0x700>;
+                       enable-method = "psci";
+                       cpu-idle-states = <&BIG_CORE_PD>;
+               };
+       };
+
+       idle-states {
+               entry-method = "psci";
+               LIT_CORE_PD: cpu-pd-lit {
+                       compatible = "arm,idle-state";
+                       entry-latency-us = <1000>;
+                       exit-latency-us = <500>;
+                       min-residency-us = <2500>;
+                       local-timer-stop;
+                       arm,psci-suspend-param = <0x00010000>;
+               };
+
+               BIG_CORE_PD: cpu-pd-big {
+                       compatible = "arm,idle-state";
+                       entry-latency-us = <4000>;
+                       exit-latency-us = <4000>;
+                       min-residency-us = <10000>;
+                       local-timer-stop;
+                       arm,psci-suspend-param = <0x00010000>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               gic: interrupt-controller@12000000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x0 0x12000000 0 0x20000>,       /* GICD */
+                             <0x0 0x12040000 0 0x100000>;      /* GICR */
+                       #interrupt-cells = <3>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       redistributor-stride = <0x0 0x20000>;   /* 128KB stride */
+                       #redistributor-regions = <1>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               apb@20200000 {
+                       compatible = "simple-bus";
+                       ranges = <0 0 0x20200000 0x100000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       uart0: serial@0 {
+                               compatible = "sprd,ums9620-uart",
+                                            "sprd,sc9836-uart";
+                               reg = <0 0x100>;
+                               interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&ext_26m>;
+                               status = "disabled";
+                       };
+
+                       uart1: serial@10000 {
+                               compatible = "sprd,ums9620-uart",
+                                            "sprd,sc9836-uart";
+                               reg = <0x10000 0x100>;
+                               interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&ext_26m>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       ext_26m: clk-26m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+               clock-output-names = "ext-26m";
+       };
+
+       ext_4m: clk-4m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <4000000>;
+               clock-output-names = "ext-4m";
+       };
+
+       ext_32k: clk-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "ext-32k";
+       };
+
+       rco_100m: clk-100m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+               clock-output-names = "rco-100m";
+       };
+
+       dphy_312m5: dphy-312m5 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <312500000>;
+               clock-output-names = "dphy-312m5";
+       };
+
+       dphy_416m7: dphy-416m7 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <416700000>;
+               clock-output-names = "dphy-416m7";
+       };
+};
index 124403f5f1f4971b44136770322f953c4ce6ee32..96859d098ef8f6aa088a2a63787771fd04807b11 100644 (file)
                        };
                };
 
+               bsec: efuse@44000000 {
+                       compatible = "st,stm32mp25-bsec";
+                       reg = <0x44000000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       part_number_otp@24 {
+                               reg = <0x24 0x4>;
+                       };
+
+                       package_otp@1e8 {
+                               reg = <0x1e8 0x1>;
+                               bits = <0 3>;
+                       };
+               };
+
                syscfg: syscon@44230000 {
                        compatible = "st,stm32mp25-syscfg", "syscon";
                        reg = <0x44230000 0x10000>;
index bb50a9f7db4aa0f39632eedd6dca1dcda755fdbe..aaffb50b8b60df37fbef30f78597c9d1cb916bfa 100644 (file)
                #clock-cells = <0>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               mfc_left: region@84000000 {
+                       compatible = "shared-dma-pool";
+                       no-map;
+                       reg = <0 0x84000000 0 0x8000000>;
+               };
+       };
+
        soc: soc@0 {
                compatible = "simple-bus";
                #address-cells = <2>;
                };
 
                serial_0: serial@14180000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "tesla,fsd-uart", "samsung,exynos4210-uart";
                        reg = <0x0 0x14180000 0x0 0x100>;
                        interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
                        dmas = <&pdma1 1>, <&pdma1 0>;
                };
 
                serial_1: serial@14190000 {
-                       compatible = "samsung,exynos4210-uart";
+                       compatible = "tesla,fsd-uart", "samsung,exynos4210-uart";
                        reg = <0x0 0x14190000 0x0 0x100>;
                        interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
                        dmas = <&pdma1 3>, <&pdma1 2>;
                };
 
                pmu_system_controller: system-controller@11400000 {
-                       compatible = "samsung,exynos7-pmu", "syscon";
+                       compatible = "tesla,fsd-pmu", "samsung,exynos7-pmu", "syscon";
                        reg = <0x0 0x11400000 0x0 0x5000>;
                };
 
                watchdog_0: watchdog@100a0000 {
-                       compatible = "samsung,exynos7-wdt";
+                       compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
                        reg = <0x0 0x100a0000 0x0 0x100>;
                        interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>;
                        samsung,syscon-phandle = <&pmu_system_controller>;
                };
 
                watchdog_1: watchdog@100b0000 {
-                       compatible = "samsung,exynos7-wdt";
+                       compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
                        reg = <0x0 0x100b0000 0x0 0x100>;
                        interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
                        samsung,syscon-phandle = <&pmu_system_controller>;
                };
 
                watchdog_2: watchdog@100c0000 {
-                       compatible = "samsung,exynos7-wdt";
+                       compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
                        reg = <0x0 0x100c0000 0x0 0x100>;
                        interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
                        samsung,syscon-phandle = <&pmu_system_controller>;
                };
 
                pwm_0: pwm@14100000 {
-                       compatible = "samsung,exynos4210-pwm";
+                       compatible = "tesla,fsd-pwm", "samsung,exynos4210-pwm";
                        reg = <0x0 0x14100000 0x0 0x100>;
                        samsung,pwm-outputs = <0>, <1>, <2>, <3>;
                        #pwm-cells = <3>;
                };
 
                pwm_1: pwm@14110000 {
-                       compatible = "samsung,exynos4210-pwm";
+                       compatible = "tesla,fsd-pwm", "samsung,exynos4210-pwm";
                        reg = <0x0 0x14110000 0x0 0x100>;
                        samsung,pwm-outputs = <0>, <1>, <2>, <3>;
                        #pwm-cells = <3>;
                };
 
                hsi2c_0: i2c@14200000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14200000 0x0 0x1000>;
                        interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_1: i2c@14210000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14210000 0x0 0x1000>;
                        interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_2: i2c@14220000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14220000 0x0 0x1000>;
                        interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_3: i2c@14230000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14230000 0x0 0x1000>;
                        interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_4: i2c@14240000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14240000 0x0 0x1000>;
                        interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_5: i2c@14250000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14250000 0x0 0x1000>;
                        interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_6: i2c@14260000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14260000 0x0 0x1000>;
                        interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                };
 
                hsi2c_7: i2c@14270000 {
-                       compatible = "samsung,exynos7-hsi2c";
+                       compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
                        reg = <0x0 0x14270000 0x0 0x1000>;
                        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        clock-names = "fin_pll", "mct";
                };
 
+               mfc: mfc@12880000 {
+                       compatible = "tesla,fsd-mfc";
+                       reg = <0x0 0x12880000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "mfc";
+                       clocks = <&clock_mfc MFC_MFC_IPCLKPORT_ACLK>;
+                       memory-region = <&mfc_left>;
+               };
+
                ufs: ufs@15120000 {
                        compatible = "tesla,fsd-ufs";
                        reg = <0x0 0x15120000 0x0 0x200>,  /* 0: HCI standard */
index e5c64c86d1d5aeed66c385a28813b77ea3421019..464b7565d085d76f0a85120304afd03b39b034a0 100644 (file)
                              <0x00 0x4c000000 0x00 0x20000>,
                              <0x00 0x4a820000 0x00 0x20000>,
                              <0x00 0x4aa40000 0x00 0x20000>,
-                             <0x00 0x4bc00000 0x00 0x100000>;
-                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4bc00000 0x00 0x100000>,
+                             <0x00 0x48600000 0x00 0x8000>,
+                             <0x00 0x484a4000 0x00 0x2000>,
+                             <0x00 0x484c2000 0x00 0x2000>,
+                             <0x00 0x48420000 0x00 0x2000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "bchan";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <3>;
 
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
                              <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x485e0000 0x00 0x10000>,
+                             <0x00 0x484a0000 0x00 0x2000>,
+                             <0x00 0x484c0000 0x00 0x2000>,
+                             <0x00 0x48430000 0x00 0x1000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <2>;
 
        main_gpio0: gpio@600000 {
                compatible = "ti,am64-gpio", "ti,keystone-gpio";
                reg = <0x0 0x00600000 0x0 0x100>;
+               gpio-ranges = <&main_pmx0  0  0 32>,
+                             <&main_pmx0 32 33 38>,
+                             <&main_pmx0 70 72 22>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-parent = <&main_gpio_intr>;
                compatible = "ti,am64-gpio", "ti,keystone-gpio";
                reg = <0x0 0x00601000 0x0 0x100>;
                gpio-controller;
+               gpio-ranges = <&main_pmx0  0  94 41>,
+                             <&main_pmx0 41 136  6>,
+                             <&main_pmx0 47 143  3>,
+                             <&main_pmx0 50 149  2>;
                #gpio-cells = <2>;
                interrupt-parent = <&main_gpio_intr>;
                interrupts = <180>, <181>, <182>,
                };
        };
 
+       gpu: gpu@fd00000 {
+               compatible = "ti,am62-gpu", "img,img-axe";
+               reg = <0x00 0x0fd00000 0x00 0x20000>;
+               clocks = <&k3_clks 187 0>;
+               clock-names = "core";
+               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
+       };
+
        cpsw3g: ethernet@8000000 {
                compatible = "ti,am642-cpsw-nuss";
                #address-cells = <2>;
                power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
+
+       ti_csi2rx0: ticsi2rx@30102000 {
+               compatible = "ti,j721e-csi2rx-shim";
+               dmas = <&main_bcdma 0 0x4700 0>;
+               dma-names = "rx0";
+               reg = <0x00 0x30102000 0x00 0x1000>;
+               power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               status = "disabled";
+
+               cdns_csi2rx0: csi-bridge@30101000 {
+                       compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+                       reg = <0x00 0x30101000 0x00 0x1000>;
+                       clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
+                               <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
+                       clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+                               "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+                       phys = <&dphy0>;
+                       phy-names = "dphy";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               csi0_port0: port@0 {
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port1: port@1 {
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port2: port@2 {
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port3: port@3 {
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port4: port@4 {
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+       };
+
+       dphy0: phy@30110000 {
+               compatible = "cdns,dphy-rx";
+               reg = <0x00 0x30110000 0x00 0x1100>;
+               #phy-cells = <0>;
+               power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
 };
index 013357d17d4826e9c90041a74f07ff5adeaa0a85..bf6d27e70bc484ec519d01f2c13d82b3a0a3cb22 100644 (file)
 
 /* Verdin UART_2 */
 &wkup_uart0 {
-       /* FIXME: WKUP UART0 is used by DM firmware */
-       status = "reserved";
+       status = "okay";
 };
index 6701cb8974bbd7a6fba225ff6483a3003c98f2c0..680071688dcb6364914aa31bfbc26760bffc1b7f 100644 (file)
 
 /* Verdin UART_2 */
 &wkup_uart0 {
-       /* FIXME: WKUP UART0 is used by DM firmware */
-       status = "reserved";
+       status = "okay";
 };
diff --git a/src/arm64/ti/k3-am62-verdin-mallow.dtsi b/src/arm64/ti/k3-am62-verdin-mallow.dtsi
new file mode 100644 (file)
index 0000000..17b9353
--- /dev/null
@@ -0,0 +1,188 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ *
+ * Common dtsi for Verdin AM62 SoM on Mallow carrier board
+ *
+ * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
+ * https://www.toradex.com/products/carrier-board/mallow-carrier-board
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_qspi1_clk_gpio>,
+                           <&pinctrl_qspi1_cs_gpio>,
+                           <&pinctrl_qspi1_io0_gpio>,
+                           <&pinctrl_qspi1_io1_gpio>;
+
+               /* SODIMM 52 - USER_LED_1_RED */
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&main_gpio0 0 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 54 - USER_LED_1_GREEN */
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <1>;
+                       gpios = <&main_gpio0 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 56 - USER_LED_2_RED */
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&main_gpio0 3 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* SODIMM 58 - USER_LED_2_GREEN */
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       function-enumerator = <2>;
+                       gpios = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+/* Verdin ETH */
+&cpsw3g {
+       status = "okay";
+};
+
+/* Verdin MDIO */
+&cpsw3g_mdio {
+       status = "okay";
+};
+
+/* Verdin ETH_1*/
+&cpsw_port1 {
+       status = "okay";
+};
+
+/* Verdin PWM_1 and PWM_2*/
+&epwm0 {
+       status = "okay";
+};
+
+/* Verdin PWM_3 DSI */
+&epwm1 {
+       status = "okay";
+};
+
+&main_gpio0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
+                   <&pinctrl_gpio_1>,
+                   <&pinctrl_gpio_2>,
+                   <&pinctrl_gpio_3>,
+                   <&pinctrl_gpio_4>;
+};
+
+/* Verdin I2C_1 */
+&main_i2c1 {
+       status = "okay";
+
+       /* Temperature sensor */
+       sensor@4f {
+               compatible = "ti,tmp1075";
+               reg = <0x4f>;
+       };
+
+       /* EEPROM */
+       eeprom@57 {
+               compatible = "st,24c02", "atmel,24c02";
+               reg = <0x57>;
+               pagesize = <16>;
+       };
+};
+
+/* Verdin I2C_2 DSI */
+&main_i2c2 {
+       status = "okay";
+};
+
+/* Verdin I2C_4 CSI */
+&main_i2c3 {
+       status = "okay";
+};
+
+/* Verdin CAN_1 */
+&main_mcan0 {
+       status = "okay";
+};
+
+/* Verdin SPI_1 */
+&main_spi1 {
+       pinctrl-0 = <&pinctrl_spi1>,
+                   <&pinctrl_spi1_cs0>,
+                   <&pinctrl_qspi1_cs2_gpio>;
+       cs-gpios = <0>, <&main_gpio0 12 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+/* Verdin UART_3 */
+&main_uart0 {
+       status = "okay";
+};
+
+/* Verdin UART_1 */
+&main_uart1 {
+       status = "okay";
+};
+
+/* Verdin I2C_3_HDMI */
+&mcu_i2c0 {
+       status = "okay";
+};
+
+/* Verdin CAN_2 */
+&mcu_mcan0 {
+       status = "okay";
+};
+
+/* Verdin UART_4 */
+&mcu_uart0 {
+       status = "okay";
+};
+
+/* Verdin SD_1 */
+&sdhci1 {
+       status = "okay";
+};
+
+/* Verdin USB_1 */
+&usbss0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+/* Verdin USB_2 */
+&usbss1 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+/* Verdin CTRL_WAKE1_MICO# */
+&verdin_gpio_keys {
+       status = "okay";
+};
+
+/* Verdin UART_2 */
+&wkup_uart0 {
+       status = "okay";
+};
index c685df7deaeed9e0874b9bcb6ee8dd71006b9a8e..997dfafd27eb463e3d4e8f1867062e1e9f66078e 100644 (file)
 
 /* Verdin UART_2 */
 &wkup_uart0 {
-       /* FIXME: WKUP UART0 is used by DM firmware */
-       status = "reserved";
+       status = "okay";
 };
index 5db52f2372534b4bababbe360b367970cb1546a6..6a06724b6d168b1e2beeb8659f5fb03e5f52e589 100644 (file)
                >;
        };
 
+       /* Verdin SPI_1 CS as GPIO */
+       pinctrl_qspi1_io4_gpio: main-gpio0-7-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x001c, PIN_INPUT, 7) /* (J23) OSPI0_D4.GPIO0_7 */ /* SODIMM 202 */
+               >;
+       };
+
        /* Verdin QSPI_1_CS# as GPIO (conflict with Verdin QSPI_1 interface) */
        pinctrl_qspi1_cs_gpio: main-gpio0-11-default-pins {
                pinctrl-single,pins = <
        pinctrl_spi1: main-spi1-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x0020, PIN_INPUT, 1) /* (J25) OSPI0_D5.SPI1_CLK */ /* SODIMM 196 */
-                       AM62X_IOPAD(0x001c, PIN_INPUT, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */
                        AM62X_IOPAD(0x0024, PIN_INPUT, 1) /* (H25) OSPI0_D6.SPI1_D0  */ /* SODIMM 200 */
                        AM62X_IOPAD(0x0028, PIN_INPUT, 1) /* (J22) OSPI0_D7.SPI1_D1  */ /* SODIMM 198 */
                >;
        };
 
+       /* Verdin SPI_1 CS */
+       pinctrl_spi1_cs0: main-spi1-cs0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x001c, PIN_INPUT, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */
+               >;
+       };
+
        /* ETH_25MHz_CLK */
        pinctrl_eth_clock: main-system-clkout0-default-pins {
                pinctrl-single,pins = <
 /* Verdin SPI_1 */
 &main_spi1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_spi1>;
+       pinctrl-0 = <&pinctrl_spi1>, <&pinctrl_spi1_cs0>;
        ti,pindir-d0-out-d1-in;
        status = "disabled";
 };
diff --git a/src/arm64/ti/k3-am625-beagleplay-csi2-ov5640.dtso b/src/arm64/ti/k3-am625-beagleplay-csi2-ov5640.dtso
new file mode 100644 (file)
index 0000000..5e80ca7
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ALINX AN5641 & Digilent PCam 5C - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_ov5640_fixed: ov5640-xclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
+};
+
+&main_gpio0 {
+       p11-hog {
+               /* P11 - CSI2_CAMERA_GPIO1 */
+               gpio-hog;
+               gpios = <11 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "CSI2_CAMERA_GPIO1";
+       };
+};
+
+&wkup_i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ov5640: camera@3c {
+               compatible = "ovti,ov5640";
+               reg = <0x3c>;
+
+               clocks = <&clk_ov5640_fixed>;
+               clock-names = "xclk";
+
+               port {
+                       csi2_cam0: endpoint {
+                               remote-endpoint = <&csi2rx0_in_sensor>;
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&cdns_csi2rx0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               csi0_port0: port@0 {
+                       reg = <0>;
+                       status = "okay";
+
+                       csi2rx0_in_sensor: endpoint {
+                               remote-endpoint = <&csi2_cam0>;
+                               bus-type = <4>; /* CSI2 DPHY. */
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&dphy0 {
+       status = "okay";
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
diff --git a/src/arm64/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso b/src/arm64/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso
new file mode 100644 (file)
index 0000000..5e1cbbc
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Technexion TEVI-OV5640-*-RPI - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_ov5640_fixed: ov5640-xclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+};
+
+&main_gpio0 {
+       p11-hog {
+               /* P11 - CSI2_CAMERA_GPIO1 */
+               gpio-hog;
+               gpios = <11 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "CSI2_CAMERA_GPIO1";
+       };
+};
+
+&wkup_i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ov5640: camera@3c {
+               compatible = "ovti,ov5640";
+               reg = <0x3c>;
+
+               clocks = <&clk_ov5640_fixed>;
+               clock-names = "xclk";
+
+               port {
+                       csi2_cam0: endpoint {
+                               remote-endpoint = <&csi2rx0_in_sensor>;
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&cdns_csi2rx0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               csi0_port0: port@0 {
+                       reg = <0>;
+                       status = "okay";
+
+                       csi2rx0_in_sensor: endpoint {
+                               remote-endpoint = <&csi2_cam0>;
+                               bus-type = <4>; /* CSI2 DPHY. */
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&dphy0 {
+       status = "okay";
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
index 9a6bd0a3c94f724270ddfd5a4dc8eaea333e967f..eadbdd9ffe37707a704b0eca59d50fb0995e0676 100644 (file)
                >;
        };
 
-       console_pins_default: console-default-pins {
+       main_uart0_pins_default: main-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
 &main_uart0 {
        bootph-all;
        pinctrl-names = "default";
-       pinctrl-0 = <&console_pins_default>;
+       pinctrl-0 = <&main_uart0_pins_default>;
        status = "okay";
 };
 
index a438baf542c22588ce6d54b65e332095247abd3a..4bc0134c987d48ece8cea6b4d028a5b29d87a922 100644 (file)
                standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
        };
 
+       hdmi0: connector-hdmi {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&sii9022_out>;
+                       };
+               };
+       };
+
        keys {
                compatible = "gpio-keys";
                autorepeat;
                >;
        };
 
+       hdmi_int_pins_default: hdmi-int-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x040, PIN_INPUT, 7) /* (N23) GPMC0_AD1.GPIO0_16 */
+               >;
+       };
+
+       main_dss0_pins_default: main-dss0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+                       AM62X_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+                       AM62X_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+                       AM62X_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+                       AM62X_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+                       AM62X_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+                       AM62X_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+                       AM62X_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+                       AM62X_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+                       AM62X_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+                       AM62X_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+                       AM62X_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+                       AM62X_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+                       AM62X_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+                       AM62X_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+                       AM62X_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+                       AM62X_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+                       AM62X_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+                       AM62X_IOPAD(0x104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+                       AM62X_IOPAD(0x100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+               >;
+       };
+
        main_i2c1_pins_default: main-i2c1-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
        };
 };
 
+&dss {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_dss0_pins_default>;
+       status = "okay";
+};
+
+&dss_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       /* VP2: DPI/HDMI Output */
+       port@1 {
+               reg = <1>;
+
+               dpi1_out: endpoint {
+                       remote-endpoint = <&sii9022_in>;
+               };
+       };
+};
+
 &main_i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c1_pins_default>;
-       clock-frequency = <400000>;
+       clock-frequency = <100000>;
        status = "okay";
 
        gpio_exp: gpio-expander@21 {
                gpio-controller;
                interrupt-controller;
                #interrupt-cells = <2>;
-               gpio-line-names = "GPIO0_HDMI_RST", "GPIO1_CAN0_nEN",
+               gpio-line-names = "", "GPIO1_CAN0_nEN",
                                  "GPIO2_LED2", "GPIO3_LVDS_GPIO",
                                  "GPIO4_BUT2", "GPIO5_LVDS_BKLT_EN",
                                  "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET";
        };
 
+       sii9022: bridge-hdmi@39 {
+               compatible = "sil,sii9022";
+               reg = <0x39>;
+
+               interrupt-parent = <&main_gpio0>;
+               interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_int_pins_default>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               sii9022_in: endpoint {
+                                       remote-endpoint = <&dpi1_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               sii9022_out: endpoint {
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+
        eeprom@51 {
                compatible = "atmel,24c02";
                pagesize = <16>;
diff --git a/src/arm64/ti/k3-am625-verdin-nonwifi-mallow.dts b/src/arm64/ti/k3-am625-verdin-nonwifi-mallow.dts
new file mode 100644 (file)
index 0000000..9cae121
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ *
+ * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
+ * https://www.toradex.com/products/carrier-board/mallow-carrier-board
+ */
+
+/dts-v1/;
+
+#include "k3-am625.dtsi"
+#include "k3-am62-verdin.dtsi"
+#include "k3-am62-verdin-nonwifi.dtsi"
+#include "k3-am62-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin AM62 on Mallow Board";
+       compatible = "toradex,verdin-am62-nonwifi-mallow",
+                    "toradex,verdin-am62-nonwifi",
+                    "toradex,verdin-am62",
+                    "ti,am625";
+};
diff --git a/src/arm64/ti/k3-am625-verdin-wifi-mallow.dts b/src/arm64/ti/k3-am625-verdin-wifi-mallow.dts
new file mode 100644 (file)
index 0000000..81d834b
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2023 Toradex
+ *
+ * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
+ * https://www.toradex.com/products/carrier-board/mallow-carrier-board
+ */
+
+/dts-v1/;
+
+#include "k3-am625.dtsi"
+#include "k3-am62-verdin.dtsi"
+#include "k3-am62-verdin-wifi.dtsi"
+#include "k3-am62-verdin-mallow.dtsi"
+
+/ {
+       model = "Toradex Verdin AM62 WB on Mallow Board";
+       compatible = "toradex,verdin-am62-wifi-mallow",
+                    "toradex,verdin-am62-wifi",
+                    "toradex,verdin-am62",
+                    "ti,am625";
+};
index 4ae7fdc5221b236faf2fe36bce2b650792e9e044..f0b8c9ab14593fe7b87adf196813936e3ca85c8f 100644 (file)
                              <0x00 0x4c000000 0x00 0x20000>,
                              <0x00 0x4a820000 0x00 0x20000>,
                              <0x00 0x4aa40000 0x00 0x20000>,
-                             <0x00 0x4bc00000 0x00 0x100000>;
-                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4bc00000 0x00 0x100000>,
+                             <0x00 0x48600000 0x00 0x8000>,
+                             <0x00 0x484a4000 0x00 0x2000>,
+                             <0x00 0x484c2000 0x00 0x2000>,
+                             <0x00 0x48420000 0x00 0x2000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "bchan";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <3>;
                        ti,sci = <&dmsc>;
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
                              <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x485e0000 0x00 0x10000>,
+                             <0x00 0x484a0000 0x00 0x2000>,
+                             <0x00 0x484c0000 0x00 0x2000>,
+                             <0x00 0x48430000 0x00 0x1000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <2>;
                        ti,sci = <&dmsc>;
                };
        };
 
+       dmss_csi: bus@4e000000 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges;
+               ranges = <0x00 0x4e000000 0x00 0x4e000000 0x00 0x300000>;
+
+               ti,sci-dev-id = <198>;
+
+               inta_main_dmss_csi: interrupt-controller@4e0a0000 {
+                       compatible = "ti,sci-inta";
+                       reg = <0x00 0x4e0a0000 0x00 0x8000>;
+                       #interrupt-cells = <0>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic500>;
+                       msi-controller;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <200>;
+                       ti,interrupt-ranges = <0 237 8>;
+                       ti,unmapped-event-sources = <&main_bcdma_csi>;
+                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               };
+
+               main_bcdma_csi: dma-controller@4e230000 {
+                       compatible = "ti,am62a-dmss-bcdma-csirx";
+                       reg = <0x00 0x4e230000 0x00 0x100>,
+                             <0x00 0x4e180000 0x00 0x8000>,
+                             <0x00 0x4e100000 0x00 0x10000>;
+                       reg-names = "gcfg", "rchanrt", "ringrt";
+                       msi-parent = <&inta_main_dmss_csi>;
+                       #dma-cells = <3>;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <199>;
+                       ti,sci-rm-range-rchan = <0x21>;
+                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               };
+       };
+
        dmsc: system-controller@44043000 {
                compatible = "ti,k2g-sci";
                reg = <0x00 0x44043000 0x00 0xfe0>;
                             <193>, <194>, <195>;
                interrupt-controller;
                #interrupt-cells = <2>;
-               ti,ngpio = <87>;
+               ti,ngpio = <92>;
                ti,davinci-gpio-unbanked = <0>;
                power-domains = <&k3_pds 77 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 77 0>;
                             <183>, <184>, <185>;
                interrupt-controller;
                #interrupt-cells = <2>;
-               ti,ngpio = <88>;
+               ti,ngpio = <52>;
                ti,davinci-gpio-unbanked = <0>;
                power-domains = <&k3_pds 78 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 78 0>;
                power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
+
+       ti_csi2rx0: ticsi2rx@30102000 {
+               compatible = "ti,j721e-csi2rx-shim";
+               dmas = <&main_bcdma_csi 0 0x5000 0>;
+               dma-names = "rx0";
+               reg = <0x00 0x30102000 0x00 0x1000>;
+               power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               status = "disabled";
+
+               cdns_csi2rx0: csi-bridge@30101000 {
+                       compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+                       reg = <0x00 0x30101000 0x00 0x1000>;
+                       clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
+                               <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
+                       clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+                               "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+                       phys = <&dphy0>;
+                       phy-names = "dphy";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               csi0_port0: port@0 {
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port1: port@1 {
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port2: port@2 {
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port3: port@3 {
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port4: port@4 {
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+       };
+
+       dphy0: phy@30110000 {
+               compatible = "cdns,dphy-rx";
+               reg = <0x00 0x30110000 0x00 0x1100>;
+               #phy-cells = <0>;
+               power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
 };
index 8f64ac2c7568cbb0d5210e158a9849d0483b811b..7b71425862958b31b5455ad75d199378a633bfa4 100644 (file)
                        AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */
                >;
        };
+
+       main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
+               >;
+       };
 };
 
 &mcu_pmx0 {
                reg = <0x22>;
                gpio-controller;
                #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio1>;
+               interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
 
                gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
                                   "BT_EN_SOC", "MMC1_SD_EN",
                DRVDD-supply = <&vcc_3v3_sys>;
                DVDD-supply = <&buck5>;
        };
+
+       exp2: gpio@23 {
+               compatible = "ti,tca6424";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names = "", "",
+                                 "", "",
+                                 "", "",
+                                 "", "",
+                                 "WL_LT_EN", "CSI_RSTz",
+                                 "", "",
+                                 "", "",
+                                 "", "",
+                                 "SPI0_FET_SEL", "SPI0_FET_OE",
+                                 "RGMII2_BRD_CONN_DET", "CSI_SEL2",
+                                 "CSI_EN", "AUTO_100M_1000M_CONFIG",
+                                 "CSI_VLDO_SEL", "SoC_WLAN_SDIO_RST";
+       };
+};
+
+&main_i2c2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c2_pins_default>;
+       clock-frequency = <400000>;
 };
 
 &sdhci1 {
index 963758c7d377aa2d7db846eef65dd54eb74e0763..4c51bae06b57eb58e26f291f214856f0e70d885e 100644 (file)
                              <0x00 0x4c000000 0x00 0x20000>,
                              <0x00 0x4a820000 0x00 0x20000>,
                              <0x00 0x4aa40000 0x00 0x20000>,
-                             <0x00 0x4bc00000 0x00 0x100000>;
-                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4bc00000 0x00 0x100000>,
+                             <0x00 0x48600000 0x00 0x8000>,
+                             <0x00 0x484a4000 0x00 0x2000>,
+                             <0x00 0x484c2000 0x00 0x2000>,
+                             <0x00 0x48420000 0x00 0x2000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "bchan";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <3>;
 
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
                              <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x485e0000 0x00 0x10000>,
+                             <0x00 0x484a0000 0x00 0x2000>,
+                             <0x00 0x484c0000 0x00 0x2000>,
+                             <0x00 0x48430000 0x00 0x1000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <2>;
                        bootph-all;
index f377eadef0c128d919d2ff07843c3d5bbc869696..1773c05f752cdfa87437e1c54d6c4f90c4e125a6 100644 (file)
        status = "reserved";
        bootph-all;
 };
+
+/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
+&mcu_gpio0 {
+       status = "reserved";
+};
+
+&mcu_gpio_intr {
+       status = "reserved";
+};
index 19f57ead4ebd179b6951d27cdfcf6493ad7d2aa0..33768c02d8eb16c3992534b05d20106ae59e867d 100644 (file)
        };
 };
 
+&main_i2c2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c2_pins_default>;
+       clock-frequency = <400000>;
+};
+
 &sdhci0 {
        bootph-all;
        status = "okay";
                };
        };
 };
+
+/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
+&mcu_gpio0 {
+       status = "reserved";
+};
+
+&mcu_gpio_intr {
+       status = "reserved";
+};
diff --git a/src/arm64/ti/k3-am62x-sk-csi2-imx219.dtso b/src/arm64/ti/k3-am62x-sk-csi2-imx219.dtso
new file mode 100644 (file)
index 0000000..6f4cd73
--- /dev/null
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX219 (RPi v2) Camera Module
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_imx219_fixed: imx219-xclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+};
+
+&main_i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       i2c-switch@71 {
+               compatible = "nxp,pca9543";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x71>;
+
+               /* CAM port */
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ov5640: camera@10 {
+                               compatible = "sony,imx219";
+                               reg = <0x10>;
+
+                               clocks = <&clk_imx219_fixed>;
+                               clock-names = "xclk";
+
+                               reset-gpios = <&exp1 13 GPIO_ACTIVE_HIGH>;
+
+                               port {
+                                       csi2_cam0: endpoint {
+                                               remote-endpoint = <&csi2rx0_in_sensor>;
+                                               link-frequencies = /bits/ 64 <456000000>;
+                                               clock-lanes = <0>;
+                                               data-lanes = <1 2>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&cdns_csi2rx0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               csi0_port0: port@0 {
+                       reg = <0>;
+                       status = "okay";
+
+                       csi2rx0_in_sensor: endpoint {
+                               remote-endpoint = <&csi2_cam0>;
+                               bus-type = <4>; /* CSI2 DPHY. */
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
+
+&dphy0 {
+       status = "okay";
+};
diff --git a/src/arm64/ti/k3-am62x-sk-csi2-ov5640.dtso b/src/arm64/ti/k3-am62x-sk-csi2-ov5640.dtso
new file mode 100644 (file)
index 0000000..9323a4b
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ALINX AN5641 & Digilent PCam 5C - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_ov5640_fixed: ov5640-xclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
+};
+
+&main_i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       i2c-switch@71 {
+               compatible = "nxp,pca9543";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x71>;
+
+               /* CAM port */
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ov5640: camera@3c {
+                               compatible = "ovti,ov5640";
+                               reg = <0x3c>;
+
+                               clocks = <&clk_ov5640_fixed>;
+                               clock-names = "xclk";
+                               powerdown-gpios = <&exp1 13 GPIO_ACTIVE_LOW>;
+
+                               port {
+                                       csi2_cam0: endpoint {
+                                               remote-endpoint = <&csi2rx0_in_sensor>;
+                                               clock-lanes = <0>;
+                                               data-lanes = <1 2>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&cdns_csi2rx0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               csi0_port0: port@0 {
+                       reg = <0>;
+                       status = "okay";
+
+                       csi2rx0_in_sensor: endpoint {
+                               remote-endpoint = <&csi2_cam0>;
+                               bus-type = <4>; /* CSI2 DPHY. */
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
+
+&dphy0 {
+       status = "okay";
+};
diff --git a/src/arm64/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso b/src/arm64/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso
new file mode 100644 (file)
index 0000000..dcaa33a
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Technexion TEVI-OV5640-*-RPI - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_ov5640_fixed: ov5640-xclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+};
+
+&main_i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       i2c-switch@71 {
+               compatible = "nxp,pca9543";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x71>;
+
+               /* CAM port */
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ov5640: camera@3c {
+                               compatible = "ovti,ov5640";
+                               reg = <0x3c>;
+
+                               clocks = <&clk_ov5640_fixed>;
+                               clock-names = "xclk";
+                               powerdown-gpios = <&exp1 13 GPIO_ACTIVE_LOW>;
+
+                               port {
+                                       csi2_cam0: endpoint {
+                                               remote-endpoint = <&csi2rx0_in_sensor>;
+                                               clock-lanes = <0>;
+                                               data-lanes = <1 2>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&cdns_csi2rx0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               csi0_port0: port@0 {
+                       reg = <0>;
+                       status = "okay";
+
+                       csi2rx0_in_sensor: endpoint {
+                               remote-endpoint = <&csi2_cam0>;
+                               bus-type = <4>; /* CSI2 DPHY. */
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
+
+&dphy0 {
+       status = "okay";
+};
index 0be642bc1b86d7c866a11203f129fe5caca2d592..e348114f42e017cfaa3dd02ab20e06e12dfed138 100644 (file)
@@ -63,7 +63,7 @@
                        #phy-cells = <1>;
                };
 
-               epwm_tbclk: clock-controller@4140 {
+               epwm_tbclk: clock-controller@4130 {
                        compatible = "ti,am64-epwm-tbclk";
                        reg = <0x4130 0x4>;
                        #clock-cells = <1>;
                              <0x00 0x4c000000 0x00 0x20000>,
                              <0x00 0x4a820000 0x00 0x20000>,
                              <0x00 0x4aa40000 0x00 0x20000>,
-                             <0x00 0x4bc00000 0x00 0x100000>;
-                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4bc00000 0x00 0x100000>,
+                             <0x00 0x48600000 0x00 0x8000>,
+                             <0x00 0x484a4000 0x00 0x2000>,
+                             <0x00 0x484c2000 0x00 0x2000>,
+                             <0x00 0x48420000 0x00 0x2000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "bchan";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <3>;
 
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
                              <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x485e0000 0x00 0x20000>,
+                             <0x00 0x484a0000 0x00 0x4000>,
+                             <0x00 0x484c0000 0x00 0x2000>,
+                             <0x00 0x48430000 0x00 0x4000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_dmss>;
                        #dma-cells = <2>;
 
                ti,otap-del-sel-mmc-hs = <0x0>;
                ti,otap-del-sel-ddr52 = <0x6>;
                ti,otap-del-sel-hs200 = <0x7>;
+               status = "disabled";
        };
 
        sdhci1: mmc@fa00000 {
                ti,otap-del-sel-sdr104 = <0x6>;
                ti,otap-del-sel-ddr50 = <0x9>;
                ti,clkbuf-sel = <0x7>;
+               status = "disabled";
        };
 
        cpsw3g: ethernet@8000000 {
index f87f09d83c956a9e6c76e0032baa7142c1f19e83..1678e74cb750e8c2eea612a6ddc37747fa225eb5 100644 (file)
@@ -29,7 +29,7 @@
                reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
        };
 
-       reserved-memory {
+       reserved_memory: reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
                        alignment = <0x1000>;
                        no-map;
                };
+
+               main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa0000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa0100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa1000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa1100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa2000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa2100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa3000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa3100000 0x00 0xf00000>;
+                       no-map;
+               };
        };
 
        leds {
        status = "disabled";
 };
 
+&mailbox0_cluster2 {
+       status = "okay";
+
+       mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
+               ti,mbox-rx = <0 0 2>;
+               ti,mbox-tx = <1 0 2>;
+       };
+
+       mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
+               ti,mbox-rx = <2 0 2>;
+               ti,mbox-tx = <3 0 2>;
+       };
+};
+
+&mailbox0_cluster4 {
+       status = "okay";
+
+       mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
+               ti,mbox-rx = <0 0 2>;
+               ti,mbox-tx = <1 0 2>;
+       };
+
+       mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
+               ti,mbox-rx = <2 0 2>;
+               ti,mbox-tx = <3 0 2>;
+       };
+};
+
 &main_i2c0 {
        status = "okay";
        pinctrl-names = "default";
        };
 };
 
+&main_r5fss0_core0 {
+       mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
+       memory-region = <&main_r5fss0_core0_dma_memory_region>,
+                       <&main_r5fss0_core0_memory_region>;
+};
+
+&main_r5fss0_core1 {
+       mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
+       memory-region = <&main_r5fss0_core1_dma_memory_region>,
+                       <&main_r5fss0_core1_memory_region>;
+};
+
+&main_r5fss1_core0 {
+       mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
+       memory-region = <&main_r5fss1_core0_dma_memory_region>,
+                       <&main_r5fss1_core0_memory_region>;
+};
+
+&main_r5fss1_core1 {
+       mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
+       memory-region = <&main_r5fss1_core1_dma_memory_region>,
+                       <&main_r5fss1_core1_memory_region>;
+};
+
 &ospi0 {
        status = "okay";
        pinctrl-names = "default";
 };
 
 &sdhci0 {
+       status = "okay";
        bus-width = <8>;
        non-removable;
        ti,driver-strength-ohm = <50>;
index 4dba18941015dd363e0a803d403065e58763fa4d..8c5651d2cf5ddc7033d51eb0701dd103de66a076 100644 (file)
        bootph-all;
 };
 
-/* mcu_gpio0 is reserved for mcu firmware usage */
+/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
 &mcu_gpio0 {
        status = "reserved";
 };
 
+&mcu_gpio_intr {
+       status = "reserved";
+};
+
 &main_spi0 {
        status = "okay";
        pinctrl-names = "default";
        };
 };
 
+/* eMMC */
 &sdhci0 {
-       /* emmc */
+       status = "okay";
        bus-width = <8>;
        non-removable;
        ti,driver-strength-ohm = <50>;
        disable-wp;
 };
 
+/* SD/MMC */
 &sdhci1 {
-       /* SD/MMC */
        bootph-all;
+       status = "okay";
        vmmc-supply = <&vdd_mmc1>;
        pinctrl-names = "default";
        bus-width = <4>;
index 9175e96842d821f5b54eb383aecb840692ffff8d..53b64e55413f99e45ca93ec98e39cd224e3599ee 100644 (file)
 };
 
 &sdhci1 {
+       status = "okay";
        vmmc-supply = <&vcc_3v3_mmc>;
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
index f29c8a9b59ba7d94304d56efd1c806dfd7d1dcb1..1dddd6fc1a0d2dac05979333ec3c43c8ea59f421 100644 (file)
        };
 };
 
-/* mcu_gpio0 is reserved for mcu firmware usage */
+/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
 &mcu_gpio0 {
        status = "reserved";
 };
 
+&mcu_gpio_intr {
+       status = "reserved";
+};
+
 &sdhci0 {
+       status = "okay";
        vmmc-supply = <&wlan_en>;
        bus-width = <4>;
        non-removable;
        };
 };
 
+/* SD/MMC */
 &sdhci1 {
-       /* SD/MMC */
        bootph-all;
+       status = "okay";
        vmmc-supply = <&vdd_mmc1>;
        pinctrl-names = "default";
        bus-width = <4>;
index d95d80076a427027dc5c394b7d0660b748c2de30..55102d35cecc1e1fd66e75d5188d8072882c9968 100644 (file)
        ti,driver-strength-ohm = <50>;
        ti,fails-without-test-cd;
        /* Enabled by overlay */
-       status = "disabled";
 };
 
 &tscadc0 {
index d82d4a98306a7d349b9aff287c0f83a0f2c7959e..6c785eff7d2ffa32a2eb8512bae11dbf1422e068 100644 (file)
 };
 
 &sdhci0 {
+       status = "okay";
        non-removable;
        disable-wp;
        no-sdio;
index 51f902fa35a7377af0cf2c1fa2db0ca8495d3486..1d197985958369ea5b1816068a02d67637b53e61 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) Siemens AG, 2021
+ * Copyright (c) Siemens AG, 2021-2023
  *
  * Authors:
  *   Jan Kiszka <jan.kiszka@siemens.com>
 &tx_pru2_1 {
        status = "disabled";
 };
+
+&icssg0_eth {
+       status = "disabled";
+};
+
+&icssg0_mdio {
+       status = "disabled";
+};
index e9419c4fe605c50cd24b7801eb6ce5f4ae9b6161..e9b57b87e42e07c0d60eca757eb569cb53c4b81f 100644 (file)
@@ -20,7 +20,9 @@
 
 &main_gpio1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&cp2102n_reset_pin_default>;
+       pinctrl-0 =
+               <&main_pcie_enable_pins_default>,
+               <&cp2102n_reset_pin_default>;
        gpio-line-names =
                "", "", "", "", "", "", "", "", "", "",
                "", "", "", "", "", "", "", "", "", "",
index ba1c14a54acf48667e20e8e8e536710b9dc08294..61a634afaa4fecab8ec2a8ce63a3de480925c2bc 100644 (file)
@@ -9,14 +9,26 @@
  * Common bits of the IOT2050 Basic and Advanced variants, PG1 and PG2
  */
 
-#include "k3-am654.dtsi"
 #include <dt-bindings/phy/phy.h>
+#include <dt-bindings/net/ti-dp83867.h>
 
 / {
        aliases {
+               serial0 = &wkup_uart0;
+               serial1 = &mcu_uart0;
+               serial2 = &main_uart0;
+               serial3 = &main_uart1;
+               i2c0 = &wkup_i2c0;
+               i2c1 = &mcu_i2c0;
+               i2c2 = &main_i2c0;
+               i2c3 = &main_i2c1;
+               i2c4 = &main_i2c2;
+               i2c5 = &main_i2c3;
                spi0 = &mcu_spi0;
                mmc0 = &sdhci1;
                mmc1 = &sdhci0;
+               ethernet1 = &icssg0_emac0;
+               ethernet2 = &icssg0_emac1;
        };
 
        chosen {
                #clock-cells = <0>;
                clock-frequency = <19200000>;
        };
+
+       /* Dual Ethernet application node on PRU-ICSSG0 */
+       icssg0_eth: icssg0-eth {
+               compatible = "ti,am654-icssg-prueth";
+               pinctrl-names = "default";
+               pinctrl-0 = <&icssg0_rgmii_pins_default>;
+               sram = <&msmc_ram>;
+
+               ti,prus = <&pru0_0>, <&rtu0_0>, <&tx_pru0_0>,
+                       <&pru0_1>, <&rtu0_1>, <&tx_pru0_1>;
+               firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
+
+               ti,pruss-gp-mux-sel = <2>,      /* MII mode */
+                                     <2>,
+                                     <2>,
+                                     <2>,      /* MII mode */
+                                     <2>,
+                                     <2>;
+
+               ti,mii-g-rt = <&icssg0_mii_g_rt>;
+               ti,mii-rt = <&icssg0_mii_rt>;
+               ti,iep = <&icssg0_iep0>,  <&icssg0_iep1>;
+
+               interrupt-parent = <&icssg0_intc>;
+               interrupts = <24 0 2>, <25 1 3>;
+               interrupt-names = "tx_ts0", "tx_ts1";
+
+               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 */
+               dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
+                           "tx1-0", "tx1-1", "tx1-2", "tx1-3",
+                           "rx0", "rx1";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       icssg0_emac0: port@0 {
+                               reg = <0>;
+                               phy-handle = <&icssg0_eth0_phy>;
+                               phy-mode = "rgmii-id";
+                               ti,syscon-rgmii-delay = <&scm_conf 0x4100>;
+                               ti,half-duplex-capable;
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       icssg0_emac1: port@1 {
+                               reg = <1>;
+                               phy-handle = <&icssg0_eth1_phy>;
+                               phy-mode = "rgmii-id";
+                               ti,syscon-rgmii-delay = <&scm_conf 0x4104>;
+                               ti,half-duplex-capable;
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+               };
+       };
 };
 
 &wkup_pmx0 {
+       pinctrl-names =
+               "default",
+               "d0-uart0-rxd",  "d0-gpio",  "d0-gpio-pullup",  "d0-gpio-pulldown",
+               "d1-uart0-txd",  "d1-gpio",  "d1-gpio-pullup",  "d1-gpio-pulldown",
+               "d2-uart0-ctsn", "d2-gpio",  "d2-gpio-pullup",  "d2-gpio-pulldown",
+               "d3-uart0-rtsn", "d3-gpio",  "d3-gpio-pullup",  "d3-gpio-pulldown",
+               "d10-spi0-cs0",  "d10-gpio", "d10-gpio-pullup", "d10-gpio-pulldown",
+               "d11-spi0-d0",   "d11-gpio", "d11-gpio-pullup", "d11-gpio-pulldown",
+               "d12-spi0-d1",   "d12-gpio", "d12-gpio-pullup", "d12-gpio-pulldown",
+               "d13-spi0-clk",  "d13-gpio", "d13-gpio-pullup", "d13-gpio-pulldown",
+               "a0-gpio", "a0-gpio-pullup", "a0-gpio-pulldown",
+               "a1-gpio", "a1-gpio-pullup", "a1-gpio-pulldown",
+               "a2-gpio", "a2-gpio-pullup", "a2-gpio-pulldown",
+               "a3-gpio", "a3-gpio-pullup", "a3-gpio-pulldown",
+               "a4-gpio", "a4-gpio-pullup", "a4-gpio-pulldown",
+               "a5-gpio", "a5-gpio-pullup", "a5-gpio-pulldown";
+
+       pinctrl-0 = <&d0_uart0_rxd>;
+       pinctrl-1 = <&d0_uart0_rxd>;
+       pinctrl-2 = <&d0_gpio>;
+       pinctrl-3 = <&d0_gpio_pullup>;
+       pinctrl-4 = <&d0_gpio_pulldown>;
+       pinctrl-5 = <&d1_uart0_txd>;
+       pinctrl-6 = <&d1_gpio>;
+       pinctrl-7 = <&d1_gpio_pullup>;
+       pinctrl-8 = <&d1_gpio_pulldown>;
+       pinctrl-9 = <&d2_uart0_ctsn>;
+       pinctrl-10 = <&d2_gpio>;
+       pinctrl-11 = <&d2_gpio_pullup>;
+       pinctrl-12 = <&d2_gpio_pulldown>;
+       pinctrl-13 = <&d3_uart0_rtsn>;
+       pinctrl-14 = <&d3_gpio>;
+       pinctrl-15 = <&d3_gpio_pullup>;
+       pinctrl-16 = <&d3_gpio_pulldown>;
+       pinctrl-17 = <&d10_spi0_cs0>;
+       pinctrl-18 = <&d10_gpio>;
+       pinctrl-19 = <&d10_gpio_pullup>;
+       pinctrl-20 = <&d10_gpio_pulldown>;
+       pinctrl-21 = <&d11_spi0_d0>;
+       pinctrl-22 = <&d11_gpio>;
+       pinctrl-23 = <&d11_gpio_pullup>;
+       pinctrl-24 = <&d11_gpio_pulldown>;
+       pinctrl-25 = <&d12_spi0_d1>;
+       pinctrl-26 = <&d12_gpio>;
+       pinctrl-27 = <&d12_gpio_pullup>;
+       pinctrl-28 = <&d12_gpio_pulldown>;
+       pinctrl-29 = <&d13_spi0_clk>;
+       pinctrl-30 = <&d13_gpio>;
+       pinctrl-31 = <&d13_gpio_pullup>;
+       pinctrl-32 = <&d13_gpio_pulldown>;
+       pinctrl-33 = <&a0_gpio>;
+       pinctrl-34 = <&a0_gpio_pullup>;
+       pinctrl-35 = <&a0_gpio_pulldown>;
+       pinctrl-36 = <&a1_gpio>;
+       pinctrl-37 = <&a1_gpio_pullup>;
+       pinctrl-38 = <&a1_gpio_pulldown>;
+       pinctrl-39 = <&a2_gpio>;
+       pinctrl-40 = <&a2_gpio_pullup>;
+       pinctrl-41 = <&a2_gpio_pulldown>;
+       pinctrl-42 = <&a3_gpio>;
+       pinctrl-43 = <&a3_gpio_pullup>;
+       pinctrl-44 = <&a3_gpio_pulldown>;
+       pinctrl-45 = <&a4_gpio>;
+       pinctrl-46 = <&a4_gpio_pullup>;
+       pinctrl-47 = <&a4_gpio_pulldown>;
+       pinctrl-48 = <&a5_gpio>;
+       pinctrl-49 = <&a5_gpio_pullup>;
+       pinctrl-50 = <&a5_gpio_pulldown>;
+
+       d0_uart0_rxd: d0-uart0-rxd-pins {
+               pinctrl-single,pins = <
+                       /* (P4) MCU_UART0_RXD */
+                       AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 4)
+               >;
+       };
+
+       d0_gpio: d0-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (P4) WKUP_GPIO0_29 */
+                       AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 7)
+               >;
+       };
+
+       d0_gpio_pullup: d0-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (P4) WKUP_GPIO0_29 */
+                       AM65X_WKUP_IOPAD(0x0044, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d0_gpio_pulldown: d0-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (P4) WKUP_GPIO0_29 */
+                       AM65X_WKUP_IOPAD(0x0044, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d1_uart0_txd: d1-uart0-txd-pins {
+               pinctrl-single,pins = <
+                       /* (P5) MCU_UART0_TXD */
+                       AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4)
+               >;
+       };
+
+       d1_gpio: d1-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_30 */
+                       AM65X_WKUP_IOPAD(0x0048, PIN_INPUT, 7)
+               >;
+       };
+
+       d1_gpio_pullup: d1-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_30 */
+                       AM65X_WKUP_IOPAD(0x0048, PIN_INPUT, 7)
+               >;
+       };
+
+       d1_gpio_pulldown: d1-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_30 */
+                       AM65X_WKUP_IOPAD(0x0048, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d2_uart0_ctsn: d2-uart0-ctsn-pins {
+               pinctrl-single,pins = <
+                       /* (P1) MCU_UART0_CTSn */
+                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 4)
+               >;
+       };
+
+       d2_gpio: d2-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_31 */
+                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 7)
+               >;
+       };
+
+       d2_gpio_pullup: d2-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_31 */
+                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 7)
+               >;
+       };
+
+       d2_gpio_pulldown: d2-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (P5) WKUP_GPIO0_31 */
+                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d3_uart0_rtsn: d3-uart0-rtsn-pins {
+               pinctrl-single,pins = <
+                       /* (N3) MCU_UART0_RTSn */
+                       AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 4)
+               >;
+       };
+
+       d3_gpio: d3-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (N3) WKUP_GPIO0_33 */
+                       AM65X_WKUP_IOPAD(0x0054, PIN_INPUT, 7)
+               >;
+       };
+
+       d3_gpio_pullup: d3-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (N3) WKUP_GPIO0_33 */
+                       AM65X_WKUP_IOPAD(0x0054, PIN_INPUT, 7)
+               >;
+       };
+
+       d3_gpio_pulldown: d3-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (N3) WKUP_GPIO0_33 */
+                       AM65X_WKUP_IOPAD(0x0054, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d10_spi0_cs0: d10-spi0-cs0-pins {
+               pinctrl-single,pins = <
+                       /* (Y4) MCU_SPI0_CS0 */
+                       AM65X_WKUP_IOPAD(0x009c, PIN_OUTPUT, 0)
+               >;
+       };
+
+       d10_gpio: d10-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (Y4) WKUP_GPIO0_51 */
+                       AM65X_WKUP_IOPAD(0x009c, PIN_INPUT, 7)
+               >;
+       };
+
+       d10_gpio_pullup: d10-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (Y4) WKUP_GPIO0_51 */
+                       AM65X_WKUP_IOPAD(0x009c, PIN_INPUT, 7)
+               >;
+       };
+
+       d10_gpio_pulldown: d10-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (Y4) WKUP_GPIO0_51 */
+                       AM65X_WKUP_IOPAD(0x009c, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d11_spi0_d0: d11-spi0-d0-pins {
+               pinctrl-single,pins = <
+                       /* (Y3) MCU_SPI0_D0 */
+                       AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 0)
+               >;
+       };
+
+       d11_gpio: d11-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (Y3) WKUP_GPIO0_49 */
+                       AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 7)
+               >;
+       };
+
+       d11_gpio_pullup: d11-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (Y3) WKUP_GPIO0_49 */
+                       AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 7)
+               >;
+       };
+
+       d11_gpio_pulldown: d11-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (Y3) WKUP_GPIO0_49 */
+                       AM65X_WKUP_IOPAD(0x0094, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d12_spi0_d1: d12-spi0-d1-pins {
+               pinctrl-single,pins = <
+                       /* (Y2) MCU_SPI0_D1 */
+                       AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 0)
+               >;
+       };
+
+       d12_gpio: d12-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (Y2) WKUP_GPIO0_50 */
+                       AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 7)
+               >;
+       };
+
+       d12_gpio_pullup: d12-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (Y2) WKUP_GPIO0_50 */
+                       AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 7)
+               >;
+       };
+
+       d12_gpio_pulldown: d12-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (Y2) WKUP_GPIO0_50 */
+                       AM65X_WKUP_IOPAD(0x0098, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d13_spi0_clk: d13-spi0-clk-pins {
+               pinctrl-single,pins = <
+                       /* (Y1) MCU_SPI0_CLK */
+                       AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 0)
+               >;
+       };
+
+       d13_gpio: d13-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (Y1) WKUP_GPIO0_48 */
+                       AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 7)
+               >;
+       };
+
+       d13_gpio_pullup: d13-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (Y1) WKUP_GPIO0_48 */
+                       AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 7)
+               >;
+       };
+
+       d13_gpio_pulldown: d13-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (Y1) WKUP_GPIO0_48 */
+                       AM65X_WKUP_IOPAD(0x0090, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a0_gpio: a0-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (L6) WKUP_GPIO0_45 */
+                       AM65X_WKUP_IOPAD(0x0084, PIN_INPUT, 7)
+               >;
+       };
+
+       a0_gpio_pullup: a0-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (L6) WKUP_GPIO0_45 */
+                       AM65X_WKUP_IOPAD(0x0084, PIN_INPUT, 7)
+               >;
+       };
+
+       a0_gpio_pulldown: a0-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (L6) WKUP_GPIO0_45 */
+                       AM65X_WKUP_IOPAD(0x0084, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a1_gpio: a1-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (M6) WKUP_GPIO0_44 */
+                       AM65X_WKUP_IOPAD(0x0080, PIN_INPUT, 7)
+               >;
+       };
+
+       a1_gpio_pullup: a1-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (M6) WKUP_GPIO0_44 */
+                       AM65X_WKUP_IOPAD(0x0080, PIN_INPUT, 7)
+               >;
+       };
+
+       a1_gpio_pulldown: a1-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (M6) WKUP_GPIO0_44 */
+                       AM65X_WKUP_IOPAD(0x0080, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a2_gpio: a2-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (L5) WKUP_GPIO0_43 */
+                       AM65X_WKUP_IOPAD(0x007C, PIN_INPUT, 7)
+               >;
+       };
+
+       a2_gpio_pullup: a2-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (L5) WKUP_GPIO0_43 */
+                       AM65X_WKUP_IOPAD(0x007C, PIN_INPUT, 7)
+               >;
+       };
+
+       a2_gpio_pulldown: a2-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (L5) WKUP_GPIO0_43 */
+                       AM65X_WKUP_IOPAD(0x007C, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a3_gpio: a3-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (M5) WKUP_GPIO0_39 */
+                       AM65X_WKUP_IOPAD(0x006C, PIN_INPUT, 7)
+               >;
+       };
+
+       a3_gpio_pullup: a3-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (M5) WKUP_GPIO0_39 */
+                       AM65X_WKUP_IOPAD(0x006C, PIN_INPUT, 7)
+               >;
+       };
+
+       a3_gpio_pulldown: a3-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (M5) WKUP_GPIO0_39 */
+                       AM65X_WKUP_IOPAD(0x006C, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a4_gpio: a4-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (L2) WKUP_GPIO0_42 */
+                       AM65X_WKUP_IOPAD(0x0078, PIN_INPUT, 7)
+               >;
+       };
+
+       a4_gpio_pullup: a4-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (L2) WKUP_GPIO0_42 */
+                       AM65X_WKUP_IOPAD(0x0078, PIN_INPUT, 7)
+               >;
+       };
+
+       a4_gpio_pulldown: a4-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (L2) WKUP_GPIO0_42 */
+                       AM65X_WKUP_IOPAD(0x0078, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       a5_gpio: a5-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (N5) WKUP_GPIO0_35 */
+                       AM65X_WKUP_IOPAD(0x005C, PIN_INPUT, 7)
+               >;
+       };
+
+       a5_gpio_pullup: a5-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (N5) WKUP_GPIO0_35 */
+                       AM65X_WKUP_IOPAD(0x005C, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       a5_gpio_pulldown: a5-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (N5) WKUP_GPIO0_35 */
+                       AM65X_WKUP_IOPAD(0x005C, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                pinctrl-single,pins = <
                        /* (AC7) WKUP_I2C0_SCL */
                >;
        };
 
-       arduino_uart_pins_default: arduino-uart-default-pins {
-               pinctrl-single,pins = <
-                       /* (P4) MCU_UART0_RXD */
-                       AM65X_WKUP_IOPAD(0x0044, PIN_INPUT,  4)
-                       /* (P5) MCU_UART0_TXD */
-                       AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4)
-               >;
-       };
-
-       arduino_io_d2_to_d3_pins_default: arduino-io-d2-to-d3-default-pins {
-               pinctrl-single,pins = <
-                       /* (P1) WKUP_GPIO0_31 */
-                       AM65X_WKUP_IOPAD(0x004C, PIN_OUTPUT, 7)
-                       /* (N3) WKUP_GPIO0_33 */
-                       AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 7)
-               >;
-       };
 
        arduino_io_oe_pins_default: arduino-io-oe-default-pins {
                pinctrl-single,pins = <
 };
 
 &main_pmx0 {
+       pinctrl-names =
+               "default",
+               "d4-ehrpwm0-a", "d4-gpio", "d4-gpio-pullup", "d4-gpio-pulldown",
+               "d5-ehrpwm1-a", "d5-gpio", "d5-gpio-pullup", "d5-gpio-pulldown",
+               "d6-ehrpwm2-a", "d6-gpio", "d6-gpio-pullup", "d6-gpio-pulldown",
+               "d7-ehrpwm3-a", "d7-gpio", "d7-gpio-pullup", "d7-gpio-pulldown",
+               "d8-ehrpwm4-a", "d8-gpio", "d8-gpio-pullup", "d8-gpio-pulldown",
+               "d9-ehrpwm5-a", "d9-gpio", "d9-gpio-pullup", "d9-gpio-pulldown";
+
+       pinctrl-0 = <&d4_ehrpwm0_a>;
+       pinctrl-1 = <&d4_ehrpwm0_a>;
+       pinctrl-2 = <&d4_gpio>;
+       pinctrl-3 = <&d4_gpio_pullup>;
+       pinctrl-4 = <&d4_gpio_pulldown>;
+
+       pinctrl-5 = <&d5_ehrpwm1_a>;
+       pinctrl-6 = <&d5_gpio>;
+       pinctrl-7 = <&d5_gpio_pullup>;
+       pinctrl-8 = <&d5_gpio_pulldown>;
+
+       pinctrl-9 = <&d6_ehrpwm2_a>;
+       pinctrl-10 = <&d6_gpio>;
+       pinctrl-11 = <&d6_gpio_pullup>;
+       pinctrl-12 = <&d6_gpio_pulldown>;
+
+       pinctrl-13 = <&d7_ehrpwm3_a>;
+       pinctrl-14 = <&d7_gpio>;
+       pinctrl-15 = <&d7_gpio_pullup>;
+       pinctrl-16 = <&d7_gpio_pulldown>;
+
+       pinctrl-17 = <&d8_ehrpwm4_a>;
+       pinctrl-18 = <&d8_gpio>;
+       pinctrl-19 = <&d8_gpio_pullup>;
+       pinctrl-20 = <&d8_gpio_pulldown>;
+
+       pinctrl-21 = <&d9_ehrpwm5_a>;
+       pinctrl-22 = <&d9_gpio>;
+       pinctrl-23 = <&d9_gpio_pullup>;
+       pinctrl-24 = <&d9_gpio_pulldown>;
+
+       d4_ehrpwm0_a: d4-ehrpwm0-a-pins {
+               pinctrl-single,pins = <
+                       /* (AG18) EHRPWM0_A */
+                       AM65X_IOPAD(0x0084, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d4_gpio: d4-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AG18) GPIO0_33 */
+                       AM65X_IOPAD(0x0084, PIN_INPUT, 7)
+               >;
+       };
+
+       d4_gpio_pullup: d4-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AG18) GPIO0_33 */
+                       AM65X_IOPAD(0x0084, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d4_gpio_pulldown: d4-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AG18) GPIO0_33 */
+                       AM65X_IOPAD(0x0084, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d5_ehrpwm1_a: d5-ehrpwm1-a-pins {
+               pinctrl-single,pins = <
+                       /* (AF17) EHRPWM1_A */
+                       AM65X_IOPAD(0x008C, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d5_gpio: d5-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AF17) GPIO0_35 */
+                       AM65X_IOPAD(0x008C, PIN_INPUT, 7)
+               >;
+       };
+
+       d5_gpio_pullup: d5-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AF17) GPIO0_35 */
+                       AM65X_IOPAD(0x008C, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d5_gpio_pulldown: d5-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AF17) GPIO0_35 */
+                       AM65X_IOPAD(0x008C, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d6_ehrpwm2_a: d6-ehrpwm2-a-pins {
+               pinctrl-single,pins = <
+                       /* (AH16) EHRPWM2_A */
+                       AM65X_IOPAD(0x0098, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d6_gpio: d6-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AH16) GPIO0_38 */
+                       AM65X_IOPAD(0x0098, PIN_INPUT, 7)
+               >;
+       };
+
+       d6_gpio_pullup: d6-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AH16) GPIO0_38 */
+                       AM65X_IOPAD(0x0098, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d6_gpio_pulldown: d6-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AH16) GPIO0_38 */
+                       AM65X_IOPAD(0x0098, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d7_ehrpwm3_a: d7-ehrpwm3-a-pins {
+               pinctrl-single,pins = <
+                       /* (AH15) EHRPWM3_A */
+                       AM65X_IOPAD(0x00AC, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d7_gpio: d7-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AH15) GPIO0_43 */
+                       AM65X_IOPAD(0x00AC, PIN_INPUT, 7)
+               >;
+       };
+
+       d7_gpio_pullup: d7-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AH15) GPIO0_43 */
+                       AM65X_IOPAD(0x00AC, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d7_gpio_pulldown: d7-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AH15) GPIO0_43 */
+                       AM65X_IOPAD(0x00AC, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d8_ehrpwm4_a: d8-ehrpwm4-a-pins {
+               pinctrl-single,pins = <
+                       /* (AG15) EHRPWM4_A */
+                       AM65X_IOPAD(0x00C0, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d8_gpio: d8-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AG15) GPIO0_48 */
+                       AM65X_IOPAD(0x00C0, PIN_INPUT, 7)
+               >;
+       };
+
+       d8_gpio_pullup: d8-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AG15) GPIO0_48 */
+                       AM65X_IOPAD(0x00C0, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d8_gpio_pulldown: d8-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AG15) GPIO0_48 */
+                       AM65X_IOPAD(0x00C0, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       d9_ehrpwm5_a: d9-ehrpwm5-a-pins {
+               pinctrl-single,pins = <
+                       /* (AD15) EHRPWM5_A */
+                       AM65X_IOPAD(0x00CC, PIN_OUTPUT, 5)
+               >;
+       };
+
+       d9_gpio: d9-gpio-pins {
+               pinctrl-single,pins = <
+                       /* (AD15) GPIO0_51 */
+                       AM65X_IOPAD(0x00CC, PIN_INPUT, 7)
+               >;
+       };
+
+       d9_gpio_pullup: d9-gpio-pullup-pins {
+               pinctrl-single,pins = <
+                       /* (AD15) GPIO0_51 */
+                       AM65X_IOPAD(0x00CC, PIN_INPUT_PULLUP, 7)
+               >;
+       };
+
+       d9_gpio_pulldown: d9-gpio-pulldown-pins {
+               pinctrl-single,pins = <
+                       /* (AD15) GPIO0_51 */
+                       AM65X_IOPAD(0x00CC, PIN_INPUT_PULLDOWN, 7)
+               >;
+       };
+
+       main_pcie_enable_pins_default: main-pcie-enable-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x01c4, PIN_INPUT_PULLUP, 7)  /* (AH13) GPIO1_17 */
+               >;
+       };
+
        main_uart1_pins_default: main-uart1-default-pins {
                pinctrl-single,pins = <
                        AM65X_IOPAD(0x0174, PIN_INPUT,  6)  /* (AE23) UART1_RXD */
                >;
        };
 
-       arduino_io_d4_to_d9_pins_default: arduino-io-d4-to-d9-default-pins {
-               pinctrl-single,pins = <
-                       AM65X_IOPAD(0x0084, PIN_OUTPUT, 7)  /* (AG18) GPIO0_33 */
-                       AM65X_IOPAD(0x008C, PIN_OUTPUT, 7)  /* (AF17) GPIO0_35 */
-                       AM65X_IOPAD(0x0098, PIN_OUTPUT, 7)  /* (AH16) GPIO0_38 */
-                       AM65X_IOPAD(0x00AC, PIN_OUTPUT, 7)  /* (AH15) GPIO0_43 */
-                       AM65X_IOPAD(0x00C0, PIN_OUTPUT, 7)  /* (AG15) GPIO0_48 */
-                       AM65X_IOPAD(0x00CC, PIN_OUTPUT, 7)  /* (AD15) GPIO0_51 */
-               >;
-       };
-
        dss_vout1_pins_default: dss-vout1-default-pins {
                pinctrl-single,pins = <
                        AM65X_IOPAD(0x0000, PIN_OUTPUT, 1)  /* VOUT1_DATA0 */
                        AM65X_IOPAD(0x0070, PIN_INPUT,  5)  /* (R25) I2C2_SDA */
                >;
        };
+
+       icssg0_mdio_pins_default: icssg0-mdio-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x0294, PIN_INPUT, 0) /* (AE26) PRG0_MDIO0_MDIO */
+                       AM65X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AE28) PRG0_MDIO0_MDC */
+               >;
+       };
+
+       icssg0_rgmii_pins_default: icssg0-rgmii-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x0244, PIN_INPUT, 2) /* (AB28) PRG0_PRU1_GPO0.PRG0_RGMII2_RD0 */
+                       AM65X_IOPAD(0x0248, PIN_INPUT, 2) /* (AC28) PRG0_PRU1_GPO1.PRG0_RGMII2_RD1 */
+                       AM65X_IOPAD(0x024c, PIN_INPUT, 2) /* (AC27) PRG0_PRU1_GPO2.PRG0_RGMII2_RD2 */
+                       AM65X_IOPAD(0x0250, PIN_INPUT, 2) /* (AB26) PRG0_PRU1_GPO3.PRG0_RGMII2_RD3 */
+                       AM65X_IOPAD(0x0274, PIN_OUTPUT, 2) /* (AC25) PRG0_PRU1_GPO12.PRG0_RGMII2_TD0 */
+                       AM65X_IOPAD(0x0278, PIN_OUTPUT, 2) /* (AD25) PRG0_PRU1_GPO13.PRG0_RGMII2_TD1 */
+                       AM65X_IOPAD(0x027c, PIN_OUTPUT, 2) /* (AD24) PRG0_PRU1_GPO14.PRG0_RGMII2_TD2 */
+                       AM65X_IOPAD(0x0280, PIN_OUTPUT, 2) /* (AE27) PRG0_PRU1_GPO15.PRG0_RGMII2_TD3 */
+                       AM65X_IOPAD(0x0284, PIN_INPUT, 2) /* (AC24) PRG0_PRU1_GPO16.PRG0_RGMII2_TXC */
+                       AM65X_IOPAD(0x0270, PIN_OUTPUT, 2) /* (AB24) PRG0_PRU1_GPO11.PRG0_RGMII2_TX_CTL */
+                       AM65X_IOPAD(0x025c, PIN_INPUT, 2) /* (AB27) PRG0_PRU1_GPO6.PRG0_RGMII2_RXC */
+                       AM65X_IOPAD(0x0254, PIN_INPUT, 2) /* (AA25) PRG0_PRU1_GPO4.PRG0_RGMII2_RX_CTL */
+
+                       AM65X_IOPAD(0x01f4, PIN_INPUT, 2) /* (V24) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
+                       AM65X_IOPAD(0x01f8, PIN_INPUT, 2) /* (W25) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
+                       AM65X_IOPAD(0x01fc, PIN_INPUT, 2) /* (W24) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
+                       AM65X_IOPAD(0x0200, PIN_INPUT, 2) /* (AA27) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
+                       AM65X_IOPAD(0x0224, PIN_OUTPUT, 2) /* (AD27) PRG0_PRU0_GPO12.PRG0_RGMII1_TD0 */
+                       AM65X_IOPAD(0x0228, PIN_OUTPUT, 2) /* (AC26) PRG0_PRU0_GPO13.PRG0_RGMII1_TD1 */
+                       AM65X_IOPAD(0x022c, PIN_OUTPUT, 2) /* (AD26) PRG0_PRU0_GPO14.PRG0_RGMII1_TD2 */
+                       AM65X_IOPAD(0x0230, PIN_OUTPUT, 2) /* (AA24) PRG0_PRU0_GPO15.PRG0_RGMII1_TD3 */
+                       AM65X_IOPAD(0x0234, PIN_INPUT, 2) /* (AD28) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
+                       AM65X_IOPAD(0x0220, PIN_OUTPUT, 2) /* (AB25) PRG0_PRU0_GPO11.PRG0_RGMII1_TX_CTL */
+                       AM65X_IOPAD(0x020c, PIN_INPUT, 2) /* (Y25) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
+                       AM65X_IOPAD(0x0204, PIN_INPUT, 2) /* (Y24) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
+               >;
+       };
 };
 
 &main_pmx1 {
                        AM65X_IOPAD(0x000c, PIN_INPUT,  0)  /* (E21) I2C1_SDA */
                >;
        };
-
-       ecap0_pins_default: ecap0-default-pins {
-               pinctrl-single,pins = <
-                       AM65X_IOPAD(0x0010, PIN_INPUT,  0)  /* (D21) ECAP0_IN_APWM_OUT */
-               >;
-       };
 };
 
 &wkup_uart0 {
 
 &mcu_uart0 {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&arduino_uart_pins_default>;
 };
 
 &main_gpio0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&arduino_io_d4_to_d9_pins_default>;
        gpio-line-names =
                "main_gpio0-base", "", "", "", "", "", "", "", "", "",
                "", "", "", "", "", "", "", "", "", "",
                "", "IO9";
 };
 
+&main_gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_pcie_enable_pins_default>;
+};
+
 &wkup_gpio0 {
        pinctrl-names = "default";
        pinctrl-0 =
-               <&arduino_io_d2_to_d3_pins_default>,
                <&arduino_i2c_aio_switch_pins_default>,
                <&arduino_io_oe_pins_default>,
                <&push_button_pins_default>,
        status = "disabled";
 };
 
-&ecap0 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&ecap0_pins_default>;
-};
-
 &sdhci1 {
+       status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
        ti,driver-strength-ohm = <50>;
 
 &mcu_spi0 {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&mcu_spi0_pins_default>;
-
        #address-cells = <1>;
        #size-cells = <0>;
        ti,pindir-d0-out-d1-in;
                        <&mcu_r5fss0_core1_memory_region>;
        mboxes = <&mailbox0_cluster1>, <&mbox_mcu_r5fss0_core1>;
 };
+
+&icssg0_mdio {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&icssg0_mdio_pins_default>;
+
+       icssg0_eth0_phy: ethernet-phy@0 {
+               reg = <0>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+
+       icssg0_eth1_phy: ethernet-phy@1 {
+               reg = <1>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+};
index 5ebb87f467de5e45fca6be079f6cf8732bb3f731..fcea544656360c5b86f9f0859cf6472f70d702ef 100644 (file)
                ti,otap-del-sel-hs400 = <0x0>;
                ti,trm-icp = <0x8>;
                dma-coherent;
+               status = "disabled";
        };
 
        sdhci1: mmc@4fa0000 {
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
+               status = "disabled";
        };
 
        scm_conf: scm-conf@100000 {
                };
 
                dss_oldi_io_ctrl: dss-oldi-io-ctrl@41e0 {
-                       compatible = "syscon";
-                       reg = <0x000041e0 0x14>;
+                       compatible = "ti,am654-dss-oldi-io-ctrl", "syscon";
+                       reg = <0x41e0 0x14>;
                };
 
                ehrpwm_tbclk: clock-controller@4140 {
                        compatible = "ti,am654-navss-main-udmap";
                        reg = <0x0 0x31150000 0x0 0x100>,
                              <0x0 0x34000000 0x0 0x100000>,
-                             <0x0 0x35000000 0x0 0x100000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x35000000 0x0 0x100000>,
+                             <0x0 0x30b00000 0x0 0x10000>,
+                             <0x0 0x30c00000 0x0 0x10000>,
+                             <0x0 0x30d00000 0x0 0x8000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_udmass>;
                        #dma-cells = <1>;
 
                assigned-clocks = <&k3_clks 67 2>;
                assigned-clock-parents = <&k3_clks 67 5>;
 
-               interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
+               interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
 
                dma-coherent;
 
index edd5cfbec40e664d3c74b1cebc3066b08d4e6d63..ecd7356f3315d1ad9ebbacd06ae1bf70fecf36d7 100644 (file)
                        compatible = "ti,am654-navss-mcu-udmap";
                        reg = <0x0 0x285c0000 0x0 0x100>,
                              <0x0 0x2a800000 0x0 0x40000>,
-                             <0x0 0x2aa00000 0x0 0x40000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x2aa00000 0x0 0x40000>,
+                             <0x0 0x284a0000 0x0 0x4000>,
+                             <0x0 0x284c0000 0x0 0x4000>,
+                             <0x0 0x28400000 0x0 0x2000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&inta_main_udmass>;
                        #dma-cells = <1>;
 
index fd2b998ebddc4c0dc88dcea0c81a08a9f2a38046..f037b36243ceda1275c628f0b28f32d03ef62f53 100644 (file)
                };
        };
 
-       chipid@43000014 {
-               compatible = "ti,am654-chipid";
-               reg = <0x43000014 0x4>;
+       wkup_conf: bus@43000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x43000000 0x20000>;
+
+               chipid: chipid@14 {
+                       compatible = "ti,am654-chipid";
+                       reg = <0x14 0x4>;
+               };
        };
 
        wkup_pmx0: pinctrl@4301c000 {
diff --git a/src/arm64/ti/k3-am652.dtsi b/src/arm64/ti/k3-am652.dtsi
new file mode 100644 (file)
index 0000000..0f22e00
--- /dev/null
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for AM65 SoC family in Dual core configuration
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+#include "k3-am65.dtsi"
+
+/ {
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu-map {
+                       cluster0: cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x000>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       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_0>;
+               };
+
+               cpu1: cpu@1 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x001>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       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_0>;
+               };
+       };
+
+       L2_0: l2-cache0 {
+               compatible = "cache";
+               cache-level = <2>;
+               cache-unified;
+               cache-size = <0x80000>;
+               cache-line-size = <64>;
+               cache-sets = <512>;
+               next-level-cache = <&msmc_l3>;
+       };
+
+       msmc_l3: l3-cache0 {
+               compatible = "cache";
+               cache-level = <3>;
+               cache-unified;
+       };
+
+       thermal_zones: thermal-zones {
+               #include "k3-am654-industrial-thermal.dtsi"
+       };
+};
index 5ab434c02ab6b44acfaa775d2c84aac2b5cee418..1d6cddb1199149756b6101f2c206d3e23e3ff56b 100644 (file)
@@ -9,6 +9,7 @@
  * Common bits of the IOT2050 Basic variant, PG1 and PG2
  */
 
+#include "k3-am652.dtsi"
 #include "k3-am65-iot2050-common.dtsi"
 
 / {
                /* 1G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
        };
-
-       cpus {
-               cpu-map {
-                       /delete-node/ cluster1;
-               };
-               /delete-node/ cpu@100;
-               /delete-node/ cpu@101;
-       };
-
-       /delete-node/ l2-cache1;
-};
-
-/* eMMC */
-&sdhci0 {
-       status = "disabled";
 };
 
 &main_pmx0 {
index 1637ec5ab5eda55c1f692bd81e1e77f69bfbcdc3..822c288d2797635f51387fc95c212c5b7b614d06 100644 (file)
 };
 
 &sdhci0 {
+       status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc0_pins_default>;
        bus-width = <8>;
  * disable sdhci1
  */
 &sdhci1 {
+       status = "okay";
        vmmc-supply = <&vdd_mmc1_sd>;
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
index be55494b1f3fcaa7f1d8a94655abcc4374a2d432..3864ec54e3716d984ea5ba4f342d37a26646a582 100644 (file)
@@ -11,6 +11,7 @@
 
 /dts-v1/;
 
+#include "k3-am654.dtsi"
 #include "k3-am65-iot2050-common.dtsi"
 
 / {
@@ -43,6 +44,7 @@
 
 /* eMMC */
 &sdhci0 {
+       status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc0_pins_default>;
        bus-width = <8>;
index 774eb14ac907d2c3793cfa72f870364f0b1ba3b8..bd6f2e696e94c7f49fc85acfd918c438d753ebbd 100644 (file)
 };
 
 &main_pmx0 {
-       main_m2_enable_pins_default: main-m2-enable-default-pins {
-               pinctrl-single,pins = <
-                       AM65X_IOPAD(0x01c4, PIN_INPUT_PULLUP, 7)  /* (AH13) GPIO1_17 */
-               >;
-       };
-
        main_bkey_pcie_reset: main-bkey-pcie-reset-default-pins {
                pinctrl-single,pins = <
                        AM65X_IOPAD(0x01bc, PIN_OUTPUT_PULLUP, 7)  /* (AG13) GPIO1_15 */
 
 &main_gpio0 {
        pinctrl-names = "default";
-       pinctrl-0 =
-               <&main_m2_pcie_mux_control>,
-               <&arduino_io_d4_to_d9_pins_default>;
+       pinctrl-0 = <&main_m2_pcie_mux_control>;
 };
 
 &main_gpio1 {
        pinctrl-names = "default";
        pinctrl-0 =
-               <&main_m2_enable_pins_default>,
+               <&main_pcie_enable_pins_default>,
                <&main_pmx0_m2_config_pins_default>,
                <&main_pmx1_m2_config_pins_default>,
                <&cp2102n_reset_pin_default>;
index 1e1a82f9d2b81364e1612dd26172d91b21443444..d0cfdeac21fbe12b979e4b70062e58cf1f22d934 100644 (file)
@@ -31,6 +31,7 @@
                can1 = &mcu_mcan1;
                can2 = &main_mcan6;
                can3 = &main_mcan7;
+               ethernet0 = &cpsw_port1;
        };
 
        vusb_main: regulator-vusb-main5v0 {
index 9868c7049bfb9f2ccc0385a2e2f8c33bcd3a6f59..8da5915798688a5fb3016990079b848d083e0c11 100644 (file)
 
 &wkup_pmx2 {
        bootph-all;
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       /* (AA37) MCU_ADC1_AIN4.WKUP_GPIO0_83 */
+                       J784S4_WKUP_IOPAD(0x0fc, PIN_INPUT, 7)
+               >;
+       };
+
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
                compatible = "atmel,24c512";
                reg = <0x51>;
        };
+
+       tps659413: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck12-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka12: buck12 {
+                               regulator-name = "vdd_ddr_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka3: buck3 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka4: buck4 {
+                               regulator-name = "vdd_io_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vdd_mcuio_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vds_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &wkup_gpio0 {
                reg = <0x21>;
                gpio-controller;
                #gpio-cells = <2>;
-               gpio-line-names = "BOARDID_EEPROM_WP", "CAN_STB", "GPIO_uSD_PWR_EN",
+               gpio-line-names = "BOARDID_EEPROM_WP", "CAN_STB", "GPIO_uSD_PWR_EN",
                                "IO_EXP_MCU_RGMII_RST#", "IO_EXP_PCIe0_4L_PERST#",
                                "IO_EXP_PCIe1_M.2_RTSz", "IO_EXP_PCIe3_M.2_RTSz",
                                "PM_INA_BUS_EN", "ENET1_EXP_PWRDN", "EXP1_ENET_RSTz",
index 264913f832876720f9accdf5abb2ffa1713f9bb2..da67bf8fe703ebcbc574f114396a710abbda4999 100644 (file)
                        compatible = "ti,j721e-navss-main-udmap";
                        reg = <0x00 0x31150000 0x00 0x100>,
                              <0x00 0x34000000 0x00 0x100000>,
-                             <0x00 0x35000000 0x00 0x100000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x00 0x35000000 0x00 0x100000>,
+                             <0x00 0x30b00000 0x00 0x4000>,
+                             <0x00 0x30c00000 0x00 0x4000>,
+                             <0x00 0x30d00000 0x00 0x4000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
                ti,otap-del-sel-hs400 = <0x5>;
                ti,itap-del-sel-legacy = <0x10>;
                ti,itap-del-sel-mmc-hs = <0xa>;
+               ti,itap-del-sel-ddr52 = <0x3>;
                ti,strobe-sel = <0x77>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
index 3fc588b848c6124ee26d453bcd496b8b50639815..60b26374ae0ccfe6a9e9154832992bf854446df3 100644 (file)
                };
        };
 
-       chipid@43000014 {
-               compatible = "ti,am654-chipid";
-               reg = <0x00 0x43000014 0x00 0x4>;
+       wkup_conf: bus@43000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x00 0x43000000 0x20000>;
+
+               chipid: chipid@14 {
+                       compatible = "ti,am654-chipid";
+                       reg = <0x14 0x4>;
+               };
        };
 
        /* MCU_TIMERIO pad input CTRLMMR_MCU_TIMER*_CTRL registers */
                        compatible = "ti,j721e-navss-mcu-udmap";
                        reg = <0x00 0x285c0000 0x00 0x100>,
                              <0x00 0x2a800000 0x00 0x40000>,
-                             <0x00 0x2aa00000 0x00 0x40000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x00 0x2aa00000 0x00 0x40000>,
+                             <0x00 0x284a0000 0x00 0x4000>,
+                             <0x00 0x284c0000 0x00 0x4000>,
+                             <0x00 0x28400000 0x00 0x2000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index 5a300d4c8ba031311dcc5717699859f89ebb5e95..ea47f10d393afccc5423bad0eb54ac3433255d98 100644 (file)
        };
 };
 
+&wkup_pmx3 {
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0x01c, PIN_INPUT, 7) /* (E18) WKUP_GPIO0_84 */
+               >;
+       };
+};
+
 &main_pmx0 {
        main_i2c0_pins_default: main-i2c0-default-pins {
                pinctrl-single,pins = <
                compatible = "atmel,24c256";
                reg = <0x50>;
        };
+
+       tps659414: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <84 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck1-supply = <&vsys_3v3>;
+               buck2-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka1: buck1 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka2: buck2 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka3: buck3 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka4: buck4 {
+                               regulator-name = "vdd_ddr_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_phyio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd1_lpddr4_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vda_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vdd_wk_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_pll_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       lp876441: pmic@4c {
+               compatible = "ti,lp8764-q1";
+               reg = <0x4c>;
+               system-power-controller;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <84 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               buck1-supply = <&vsys_3v3>;
+               buck2-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+
+               regulators: regulators {
+                       buckb1: buck1 {
+                               regulator-name = "vdd_cpu_avs";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               bootph-pre-ram;
+                       };
+
+                       buckb2: buck2 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb3: buck3 {
+                               regulator-name = "vdd_core_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb4: buck4 {
+                               regulator-name = "vdd_io_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &ospi0 {
diff --git a/src/arm64/ti/k3-j721e-evm-pcie0-ep.dtso b/src/arm64/ti/k3-j721e-evm-pcie0-ep.dtso
new file mode 100644 (file)
index 0000000..0c82a13
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0
+/**
+ * DT Overlay for enabling PCIE0 instance in Endpoint Configuration with the
+ * J7 common processor board.
+ *
+ * J7 Common Processor Board Product Link: https://www.ti.com/tool/J721EXCPXEVM
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+#include "k3-pinctrl.h"
+
+/*
+ * Since Root Complex and Endpoint modes are mutually exclusive
+ * disable Root Complex mode.
+ */
+&pcie0_rc {
+       status = "disabled";
+};
+
+&cbass_main {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&gic500>;
+
+       pcie0_ep: pcie-ep@2900000 {
+               compatible = "ti,j721e-pcie-ep";
+               reg = <0x00 0x02900000 0x00 0x1000>,
+                     <0x00 0x02907000 0x00 0x400>,
+                     <0x00 0x0d000000 0x00 0x00800000>,
+                     <0x00 0x10000000 0x00 0x08000000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "mem";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 318 IRQ_TYPE_EDGE_RISING>;
+               ti,syscon-pcie-ctrl = <&scm_conf 0x4070>;
+               max-link-speed = <3>;
+               num-lanes = <1>;
+               power-domains = <&k3_pds 239 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 239 1>;
+               clock-names = "fck";
+               max-functions = /bits/ 8 <6>;
+               max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
+               dma-coherent;
+               phys = <&serdes0_pcie_link>;
+               phy-names = "pcie-phy";
+       };
+};
index 746b9f8b1c640124903a9d9b6db4fbebfa5c13c3..2569b4c08ffb85fa329831ca4d64c27dbf8a96d6 100644 (file)
                        compatible = "ti,j721e-navss-main-udmap";
                        reg = <0x0 0x31150000 0x0 0x100>,
                              <0x0 0x34000000 0x0 0x100000>,
-                             <0x0 0x35000000 0x0 0x100000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x35000000 0x0 0x100000>,
+                             <0x0 0x30b00000 0x0 0x20000>,
+                             <0x0 0x30c00000 0x0 0x10000>,
+                             <0x0 0x30d00000 0x0 0x8000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index f7ab7719fc077a9a5154815ca3f48899182512c7..a74912d9e4dafdf307961e390110706a863a015e 100644 (file)
                };
        };
 
-       chipid@43000014 {
-               compatible = "ti,am654-chipid";
-               reg = <0x0 0x43000014 0x0 0x4>;
+       wkup_conf: bus@43000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x00 0x43000000 0x20000>;
+
+               chipid: chipid@14 {
+                       compatible = "ti,am654-chipid";
+                       reg = <0x14 0x4>;
+               };
        };
 
        wkup_pmx0: pinctrl@4301c000 {
                        compatible = "ti,j721e-navss-mcu-udmap";
                        reg = <0x0 0x285c0000 0x0 0x100>,
                              <0x0 0x2a800000 0x0 0x40000>,
-                             <0x0 0x2aa00000 0x0 0x40000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x2aa00000 0x0 0x40000>,
+                             <0x0 0x284a0000 0x0 0x4000>,
+                             <0x0 0x284c0000 0x0 0x4000>,
+                             <0x0 0x28400000 0x0 0x2000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index 42fe8eee9ec8c7e15a149725e49cbc04109c6770..188dfe291a32b42d5a2dd8e1bf37507cfe868d4e 100644 (file)
 };
 
 &wkup_pmx0 {
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0x0cc, PIN_INPUT, 7) /* (G28) WKUP_GPIO0_7 */
+               >;
+       };
+
        mcu_cpsw_pins_default: mcu-cpsw-default-pins {
                pinctrl-single,pins = <
                        J721E_WKUP_IOPAD(0x84, PIN_INPUT, 0) /* (B24) MCU_RGMII1_RD0 */
                compatible = "atmel,24c512";
                reg = <0x51>;
        };
+
+       tps659413: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck123-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka123: buck123 {
+                               regulator-name = "vdd_cpu_avs";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               bootph-pre-ram;
+                       };
+
+                       bucka4: buck4 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_phyio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd1_lpddr4_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vdda_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       tps659411: pmic@4c {
+               compatible = "ti,tps6594-q1";
+               reg = <0x4c>;
+               system-power-controller;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               buck1234-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       buckb1234: buck1234 {
+                               regulator-name = "vdd_core_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb5: buck5 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob1: ldo1 {
+                               regulator-name = "vdd_sd_dv";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob2: ldo2 {
+                               regulator-name = "vdd_usb_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob3: ldo3 {
+                               regulator-name = "vdd_io_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob4: ldo4 {
+                               regulator-name = "vda_pll_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &mcu_uart0 {
index 7f0686c2ce371db3ca5255fb230cb7cc9b8a3916..a75611eec791427d702efcc782a1226a5ad6fc65 100644 (file)
                >;
        };
 
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0x0d4, PIN_INPUT, 7) /* (G26) WKUP_GPIO0_9 */
+               >;
+       };
+
        mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-default-pins {
                pinctrl-single,pins = <
                        J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_OSPI0_CLK */
                compatible = "atmel,24c256";
                reg = <0x50>;
        };
+
+       tps659413: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck12-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka12: buck12 {
+                               regulator-name = "vdd_cpu_avs";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               bootph-pre-ram;
+                       };
+
+                       bucka3: buck3 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka4: buck4 {
+                               regulator-name = "vdd_ddr_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_phyio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd1_lpddr4_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vdda_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       tps659411: pmic@4c {
+               compatible = "ti,tps6594-q1";
+               reg = <0x4c>;
+               system-power-controller;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               buck1234-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       buckb1234: buck1234 {
+                               regulator-name = "vdd_core_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb5: buck5 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob1: ldo1 {
+                               regulator-name = "vdd_sd_dv";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob2: ldo2 {
+                               regulator-name = "vdd_usb_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob3: ldo3 {
+                               regulator-name = "vdd_io_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob4: ldo4 {
+                               regulator-name = "vda_pll_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &ospi0 {
diff --git a/src/arm64/ti/k3-j721s2-evm-pcie1-ep.dtso b/src/arm64/ti/k3-j721s2-evm-pcie1-ep.dtso
new file mode 100644 (file)
index 0000000..43568eb
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0
+/**
+ * DT Overlay for enabling PCIE1 instance in Endpoint Configuration with the
+ * J7 common processor board.
+ *
+ * J7 Common Processor Board Product Link: https://www.ti.com/tool/J721EXCPXEVM
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+#include "k3-pinctrl.h"
+
+/*
+ * Since Root Complex and Endpoint modes are mutually exclusive
+ * disable Root Complex mode.
+ */
+&pcie1_rc {
+       status = "disabled";
+};
+
+&cbass_main {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&gic500>;
+
+       pcie1_ep: pcie-ep@2910000 {
+               compatible = "ti,j7200-pcie-ep", "ti,j721e-pcie-ep";
+               reg = <0x00 0x02910000 0x00 0x1000>,
+                     <0x00 0x02917000 0x00 0x400>,
+                     <0x00 0x0d800000 0x00 0x00800000>,
+                     <0x00 0x18000000 0x00 0x08000000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "mem";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 330 IRQ_TYPE_EDGE_RISING>;
+               ti,syscon-pcie-ctrl = <&scm_conf 0x074>;
+               max-link-speed = <3>;
+               num-lanes = <1>;
+               power-domains = <&k3_pds 276 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 276 41>;
+               clock-names = "fck";
+               max-functions = /bits/ 8 <6>;
+               max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
+               dma-coherent;
+               phys = <&serdes0_pcie_link>;
+               phy-names = "pcie-phy";
+       };
+};
index b03731b53a26313b07d9163e4c8bdf6e8a9c162a..ea7f2b2ab165d3020f1925733287ba5e207e876e 100644 (file)
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
+               ti,itap-del-sel-ddr50 = <0x2>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
                        compatible = "ti,j721e-navss-main-udmap";
                        reg = <0x0 0x31150000 0x0 0x100>,
                              <0x0 0x34000000 0x0 0x80000>,
-                             <0x0 0x35000000 0x0 0x200000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x35000000 0x0 0x200000>,
+                             <0x0 0x30b00000 0x0 0x20000>,
+                             <0x0 0x30c00000 0x0 0x8000>,
+                             <0x0 0x30d00000 0x0 0x4000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index 7254f3bd3634da2567a5c53c2b258ceecf117169..80aa33c58a452b5074920bd8fb65fc6c5c9c9a59 100644 (file)
                };
        };
 
-       chipid@43000014 {
-               compatible = "ti,am654-chipid";
-               reg = <0x00 0x43000014 0x00 0x4>;
+       wkup_conf: bus@43000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x00 0x43000000 0x20000>;
+
+               chipid: chipid@14 {
+                       compatible = "ti,am654-chipid";
+                       reg = <0x14 0x4>;
+               };
        };
 
        secure_proxy_sa3: mailbox@43600000 {
                        compatible = "ti,j721e-navss-mcu-udmap";
                        reg = <0x0 0x285c0000 0x0 0x100>,
                              <0x0 0x2a800000 0x0 0x40000>,
-                             <0x0 0x2aa00000 0x0 0x40000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x0 0x2aa00000 0x0 0x40000>,
+                             <0x0 0x284a0000 0x0 0x4000>,
+                             <0x0 0x284c0000 0x0 0x4000>,
+                             <0x0 0x28400000 0x0 0x2000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index dcad372620b1d0dbfd4f59d254eb929f5d365d98..da3237b23b63ac7a908c2cf8af61818062dd1b63 100644 (file)
        };
 };
 
+&wkup_pmx1 {
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       /* (C21) MCU_OSPI1_CSn1.WKUP_GPIO0_39 */
+                       J721S2_WKUP_IOPAD(0x028, PIN_INPUT, 7)
+               >;
+       };
+};
+
 &wkup_pmx2 {
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                pinctrl-single,pins = <
                compatible = "atmel,24c256";
                reg = <0x50>;
        };
+
+       tps659411: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck1234-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka1234: buck1234 {
+                               regulator-name = "vdd_cpu_avs";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               bootph-pre-ram;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd_mcuwk_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vdd_mcu_gpioret_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       tps659414: pmic@4c {
+               compatible = "ti,tps6594-q1";
+               reg = <0x4c>;
+               system-power-controller;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               buck1-supply = <&vsys_3v3>;
+               buck2-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       buckb1: buck1 {
+                               regulator-name = "vdd_io_1v8_reg";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buckb2: buck2 {
+                               regulator-name = "vdd_fpd_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb3: buck3 {
+                               regulator-name = "vdd_phy_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb4: buck4 {
+                               regulator-name = "vdd_ddr_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buckb5: buck5 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob1: ldo1 {
+                               regulator-name = "vdd_wk_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob2: ldo2 {
+                               regulator-name = "vdd_gpioret_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob3: ldo3 {
+                               regulator-name = "vda_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldob4: ldo4 {
+                               regulator-name = "vda_pll_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       lp876411: pmic@58 {
+               compatible = "ti,lp8764-q1";
+               reg = <0x58>;
+               system-power-controller;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               buck1234-supply = <&vsys_3v3>;
+
+               regulators {
+                       buckc1234: buck1234 {
+                               regulator-name = "vdd_core_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &main_i2c0 {
index f1f4c8634ab690d0ea63990a5fa7ac5da1a1aa1e..f34b92acc56d870f50cddd2b039c9c513171a32a 100644 (file)
        };
 };
 
+&wkup_gpio0 {
+       status = "okay";
+};
+
 &main_pmx0 {
        bootph-all;
        main_uart8_pins_default: main-uart8-default-pins {
        };
 };
 
+&wkup_pmx1 {
+       status = "okay";
+
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       /* (G33) MCU_OSPI1_CSn1.WKUP_GPIO0_39 */
+                       J784S4_WKUP_IOPAD(0x028, PIN_INPUT, 7)
+               >;
+       };
+};
+
 &wkup_pmx0 {
        bootph-all;
        mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-default-pins {
                compatible = "atmel,24c256";
                reg = <0x50>;
        };
+
+       tps659413: pmic@48 {
+               compatible = "ti,tps6594-q1";
+               reg = <0x48>;
+               system-power-controller;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&wkup_gpio0>;
+               interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               ti,primary-pmic;
+               buck12-supply = <&vsys_3v3>;
+               buck3-supply = <&vsys_3v3>;
+               buck4-supply = <&vsys_3v3>;
+               buck5-supply = <&vsys_3v3>;
+               ldo1-supply = <&vsys_3v3>;
+               ldo2-supply = <&vsys_3v3>;
+               ldo3-supply = <&vsys_3v3>;
+               ldo4-supply = <&vsys_3v3>;
+
+               regulators {
+                       bucka12: buck12 {
+                               regulator-name = "vdd_ddr_1v1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka3: buck3 {
+                               regulator-name = "vdd_ram_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka4: buck4 {
+                               regulator-name = "vdd_io_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bucka5: buck5 {
+                               regulator-name = "vdd_mcu_0v85";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa1: ldo1 {
+                               regulator-name = "vdd_mcuio_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa2: ldo2 {
+                               regulator-name = "vdd_mcuio_3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa3: ldo3 {
+                               regulator-name = "vds_dll_0v8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldoa4: ldo4 {
+                               regulator-name = "vda_mcu_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
 };
 
 &mcu_uart0 {
index d89bcddcfe3d45c419acd39d57bd4739a2961c77..f2b720ed1e4f232261a6efa7e493c873680ec076 100644 (file)
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
+               ti,itap-del-sel-ddr50 = <0x2>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
                        compatible = "ti,j721e-navss-main-udmap";
                        reg = <0x00 0x31150000 0x00 0x100>,
                              <0x00 0x34000000 0x00 0x80000>,
-                             <0x00 0x35000000 0x00 0x200000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x00 0x35000000 0x00 0x200000>,
+                             <0x00 0x30b00000 0x00 0x20000>,
+                             <0x00 0x30c00000 0x00 0x8000>,
+                             <0x00 0x30d00000 0x00 0x4000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index adb5ea6b9732144130cdfbd2b9c54019cbe6a7a3..3902a921d7e58500b37e3dcec91eaf0d6a4fe941 100644 (file)
                };
        };
 
-       chipid@43000014 {
+       wkup_conf: bus@43000000 {
                bootph-all;
-               compatible = "ti,am654-chipid";
-               reg = <0x00 0x43000014 0x00 0x4>;
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x00 0x43000000 0x20000>;
+
+               chipid: chipid@14 {
+                       bootph-all;
+                       compatible = "ti,am654-chipid";
+                       reg = <0x14 0x4>;
+               };
        };
 
        secure_proxy_sa3: mailbox@43600000 {
                        compatible = "ti,j721e-navss-mcu-udmap";
                        reg = <0x00 0x285c0000 0x00 0x100>,
                              <0x00 0x2a800000 0x00 0x40000>,
-                             <0x00 0x2aa00000 0x00 0x40000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                             <0x00 0x2aa00000 0x00 0x40000>,
+                             <0x00 0x284a0000 0x00 0x4000>,
+                             <0x00 0x284c0000 0x00 0x4000>,
+                             <0x00 0x28400000 0x00 0x2000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt",
+                                   "tchan", "rchan", "rflow";
                        msi-parent = <&main_udmass_inta>;
                        #dma-cells = <1>;
 
index ae1b9b2bdbee27fdf649f4ee69b75d3ddb6a9573..92f4190d564db12e127fc102cdb33deee191cdb6 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
-       #address-cells = <1>;
-       #size-cells = <0>;
-       pinctrl-names = "default", "gpio";
-       pinctrl-0 = <&pinctrl_i2c1_default>;
-       pinctrl-1 = <&pinctrl_i2c1_gpio>;
-       scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-       sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-
-       /* u14 - 0x40 - ina260 */
-       /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
-};
-
-&amba {
-       si5332_0: si5332_0 { /* u17 */
+&{/} {
+       si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <125000000>;
        };
 
-       si5332_1: si5332_1 { /* u17 */
+       si5332_1: si5332-1 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <25000000>;
        };
 
-       si5332_2: si5332_2 { /* u17 */
+       si5332_2: si5332-2 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <48000000>;
        };
 
-       si5332_3: si5332_3 { /* u17 */
+       si5332_3: si5332-3 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
        };
 
-       si5332_4: si5332_4 { /* u17 */
+       si5332_4: si5332-4 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <26000000>;
        };
 
-       si5332_5: si5332_5 { /* u17 */
+       si5332_5: si5332-5 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <27000000>;
        };
 };
 
+&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+       /* u14 - 0x40 - ina260 */
+       /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
+};
+
 /* DP/USB 3.0 and SATA */
 &psgtr {
        status = "okay";
index b59e48be6465a5e0243d48736c10d17c7d918542..f88b71f5b07a63fa4ca40ee5c4a91ee516f0125e 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
-       #address-cells = <1>;
-       #size-cells = <0>;
-       pinctrl-names = "default", "gpio";
-       pinctrl-0 = <&pinctrl_i2c1_default>;
-       pinctrl-1 = <&pinctrl_i2c1_gpio>;
-       scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-       sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-
-       /* u14 - 0x40 - ina260 */
-       /* u43 - 0x2d - usb5744 */
-       /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
-};
-
-&amba {
-       si5332_0: si5332_0 { /* u17 */
+&{/} {
+       si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <125000000>;
        };
 
-       si5332_1: si5332_1 { /* u17 */
+       si5332_1: si5332-1 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <25000000>;
        };
 
-       si5332_2: si5332_2 { /* u17 */
+       si5332_2: si5332-2 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <48000000>;
        };
 
-       si5332_3: si5332_3 { /* u17 */
+       si5332_3: si5332-3 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
        };
 
-       si5332_4: si5332_4 { /* u17 */
+       si5332_4: si5332-4 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <26000000>;
        };
 
-       si5332_5: si5332_5 { /* u17 */
+       si5332_5: si5332-5 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <27000000>;
        };
 };
 
+&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+       /* u14 - 0x40 - ina260 */
+       /* u43 - 0x2d - usb5744 */
+       /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
+};
+
 /* DP/USB 3.0 */
 &psgtr {
        status = "okay";
index c4774a42d5fcd4811ec36b989be63a496c835aa5..51622896b1b1c373da803c77d2357529e6d0d4e2 100644 (file)
 &qspi { /* MIO 0-5 - U143 */
        status = "okay";
        spi_flash: flash@0 { /* MT25QU512A */
-               compatible = "mt25qu512a", "jedec,spi-nor"; /* 64MB */
-               #address-cells = <1>;
-               #size-cells = <1>;
+               compatible = "jedec,spi-nor"; /* 64MB */
                reg = <0>;
                spi-tx-bus-width = <4>;
                spi-rx-bus-width = <4>;
                                label = "Secure OS Storage";
                                reg = <0x2280000 0x20000>; /* 128KB */
                        };
-                       partition@22A0000 {
+                       partition@22a0000 {
                                label = "User";
-                               reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
+                               reg = <0x22a0000 0x1d60000>; /* 29.375 MB */
                        };
                };
        };
index e821d55d8d5a89d5ff509c82855c61351c4ae305..73491626e01e657e8c041b8dc83283673ef98cf0 100644 (file)
        phy-mode = "rgmii-id";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gem3_default>;
-       phy0: ethernet-phy@0 {
-               reg = <0>;
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
        };
 };
 
index b59e11316b4be0a36b1a5f266d17f2f1bdf1a0d3..f767708fb50d92b5a192e78894a6aaf08f69e587 100644 (file)
        phy-mode = "rgmii-id";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gem2_default>;
-       phy0: ethernet-phy@5 {
-               reg = <5>;
-               ti,rx-internal-delay = <0x8>;
-               ti,tx-internal-delay = <0xa>;
-               ti,fifo-depth = <0x1>;
-               ti,dp83867-rxctrl-strap-quirk;
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy0: ethernet-phy@5 {
+                       reg = <5>;
+                       ti,rx-internal-delay = <0x8>;
+                       ti,tx-internal-delay = <0xa>;
+                       ti,fifo-depth = <0x1>;
+                       ti,dp83867-rxctrl-strap-quirk;
+               };
        };
 };
 
index 38b0a312171b70b7cb0147f754d1be8d8f7edb5f..f553b317e6b2a55e3155ac603f898b7a746f3247 100644 (file)
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
-       phy0: ethernet-phy@0 { /* VSC8211 */
-               reg = <0>;
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy0: ethernet-phy@0 { /* VSC8211 */
+                       reg = <0>;
+               };
        };
 };
 
index 6636e76545a5d9f977dbcc5755da6b427e1aa612..6ec1d9813973c43a9ef4f16941069fdb0ccf4d4f 100644 (file)
        status = "okay";
        phy-mode = "rgmii-id";
        phy-handle = <&ethernet_phy0>;
-       ethernet_phy0: ethernet-phy@0 { /* Marvell 88e1512 */
-               reg = <0>;
-       };
-       ethernet_phy7: ethernet-phy@7 { /* Vitesse VSC8211 */
-               reg = <7>;
-       };
-       ethernet_phy3: ethernet-phy@3 { /* Realtek RTL8211DN */
-               reg = <3>;
-       };
-       ethernet_phy8: ethernet-phy@8 { /* Vitesse VSC8211 */
-               reg = <8>;
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               ethernet_phy0: ethernet-phy@0 { /* Marvell 88e1512 */
+                       reg = <0>;
+               };
+               ethernet_phy7: ethernet-phy@7 { /* Vitesse VSC8211 */
+                       reg = <7>;
+               };
+               ethernet_phy3: ethernet-phy@3 { /* Realtek RTL8211DN */
+                       reg = <3>;
+               };
+               ethernet_phy8: ethernet-phy@8 { /* Vitesse VSC8211 */
+                       reg = <8>;
+               };
        };
 };
 
index 0d2ea9c09a0a0198a7a5571efeea7cce00791dce..b1857e17ab7e8b95d62f03c60139a7e5bb8149ac 100644 (file)
        phy-mode = "rgmii-id";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gem1_default>;
-       phy0: ethernet-phy@0 {
-               reg = <0>;
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
        };
 };
 
index d0091d3cb7643d13c7bee88bfeed81a710260e73..52f998c225381790a7cf83a300dbaa32baa91e56 100644 (file)
                io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
        };
 
-       si5335_0: si5335_0 { /* clk0_usb - u23 */
+       si5335_0: si5335-0 { /* clk0_usb - u23 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <26000000>;
        };
 
-       si5335_1: si5335_1 { /* clk1_dp - u23 */
+       si5335_1: si5335-1 { /* clk1_dp - u23 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <27000000>;
index b61fc99cd911e891feef11f310dc2cb421a54a32..eaba466804bc304eecf205c962a7c5d4c5e977fa 100644 (file)
                };
        };
 
-       zynqmp_ipi: zynqmp_ipi {
+       zynqmp_ipi: zynqmp-ipi {
                bootph-all;
                compatible = "xlnx,zynqmp-ipi-mailbox";
                interrupt-parent = <&gic>;
 
                ipi_mailbox_pmu1: mailbox@ff9905c0 {
                        bootph-all;
+                       compatible = "xlnx,zynqmp-ipi-dest-mailbox";
                        reg = <0x0 0xff9905c0 0x0 0x20>,
                              <0x0 0xff9905e0 0x0 0x20>,
                              <0x0 0xff990e80 0x0 0x20>,
                                mbox-names = "tx", "rx";
                        };
 
-                       nvmem_firmware {
+                       nvmem-firmware {
                                compatible = "xlnx,zynqmp-nvmem-fw";
                                #address-cells = <1>;
                                #size-cells = <1>;
 
-                               soc_revision: soc_revision@0 {
+                               soc_revision: soc-revision@0 {
                                        reg = <0x0 0x4>;
                                };
                        };
                                     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0x0 0xff0b0000 0x0 0x1000>;
                        clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        iommus = <&smmu 0x874>;
                        power-domains = <&zynqmp_firmware PD_ETH_0>;
                        resets = <&zynqmp_reset ZYNQMP_RESET_GEM0>;
                                     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0x0 0xff0c0000 0x0 0x1000>;
                        clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        iommus = <&smmu 0x875>;
                        power-domains = <&zynqmp_firmware PD_ETH_1>;
                        resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
                                     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0x0 0xff0d0000 0x0 0x1000>;
                        clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        iommus = <&smmu 0x876>;
                        power-domains = <&zynqmp_firmware PD_ETH_2>;
                        resets = <&zynqmp_reset ZYNQMP_RESET_GEM2>;
                                     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0x0 0xff0e0000 0x0 0x1000>;
                        clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        iommus = <&smmu 0x877>;
                        power-domains = <&zynqmp_firmware PD_ETH_3>;
                        resets = <&zynqmp_reset ZYNQMP_RESET_GEM3>;
diff --git a/src/loongarch/loongson-2k0500-ref.dts b/src/loongarch/loongson-2k0500-ref.dts
new file mode 100644 (file)
index 0000000..8aefb0c
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include "loongson-2k0500.dtsi"
+
+/ {
+       compatible = "loongson,ls2k0500-ref", "loongson,ls2k0500";
+       model = "Loongson-2K0500 Reference Board";
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@200000 {
+               device_type = "memory";
+               reg = <0x0 0x00200000 0x0 0x0ee00000>,
+                     <0x0 0x90000000 0x0 0x60000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x2000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&gmac0 {
+       status = "okay";
+
+       phy-mode = "rgmii";
+       bus_id = <0x0>;
+};
+
+&gmac1 {
+       status = "okay";
+
+       phy-mode = "rgmii";
+       bus_id = <0x1>;
+};
+
+&i2c0 {
+       status = "okay";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       eeprom@57 {
+               compatible = "atmel,24c16";
+               reg = <0x57>;
+               pagesize = <16>;
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&rtc0 {
+       status = "okay";
+};
diff --git a/src/loongarch/loongson-2k0500.dtsi b/src/loongarch/loongson-2k0500.dtsi
new file mode 100644 (file)
index 0000000..444779c
--- /dev/null
@@ -0,0 +1,266 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "loongson,la264";
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       clocks = <&cpu_clk>;
+               };
+       };
+
+       cpu_clk: cpu-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <500000000>;
+       };
+
+       cpuintc: interrupt-controller {
+               compatible = "loongson,cpu-interrupt-controller";
+               #interrupt-cells = <1>;
+               interrupt-controller;
+       };
+
+       bus@10000000 {
+               compatible = "simple-bus";
+               ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
+                        <0x0 0x02000000 0x0 0x02000000 0x0 0x02000000>,
+                        <0x0 0x20000000 0x0 0x20000000 0x0 0x10000000>,
+                        <0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>,
+                        <0xfe 0x0 0xfe 0x0 0x0 0x40000000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               isa@16400000 {
+                       compatible = "isa";
+                       #size-cells = <1>;
+                       #address-cells = <2>;
+                       ranges = <1 0x0 0x0 0x16400000 0x4000>;
+               };
+
+               liointc0: interrupt-controller@1fe11400 {
+                       compatible = "loongson,liointc-2.0";
+                       reg = <0x0 0x1fe11400 0x0 0x40>,
+                             <0x0 0x1fe11040 0x0 0x8>;
+                       reg-names = "main", "isr0";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <2>;
+                       interrupt-names = "int0";
+
+                       loongson,parent_int_map = <0xffffffff>, /* int0 */
+                                                 <0x00000000>, /* int1 */
+                                                 <0x00000000>, /* int2 */
+                                                 <0x00000000>; /* int3 */
+               };
+
+               liointc1: interrupt-controller@1fe11440 {
+                       compatible = "loongson,liointc-2.0";
+                       reg = <0x0 0x1fe11440 0x0 0x40>,
+                             <0x0 0x1fe11048 0x0 0x8>;
+                       reg-names = "main", "isr0";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <4>;
+                       interrupt-names = "int2";
+
+                       loongson,parent_int_map = <0x00000000>, /* int0 */
+                                                 <0x00000000>, /* int1 */
+                                                 <0xffffffff>, /* int2 */
+                                                 <0x00000000>; /* int3 */
+               };
+
+               eiointc: interrupt-controller@1fe11600 {
+                       compatible = "loongson,ls2k0500-eiointc";
+                       reg = <0x0 0x1fe11600 0x0 0xea00>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <3>;
+               };
+
+               gmac0: ethernet@1f020000 {
+                       compatible = "snps,dwmac-3.70a";
+                       reg = <0x0 0x1f020000 0x0 0x10000>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       status = "disabled";
+               };
+
+               gmac1: ethernet@1f030000 {
+                       compatible = "snps,dwmac-3.70a";
+                       reg = <0x0 0x1f030000 0x0 0x10000>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       status = "disabled";
+               };
+
+               sata: sata@1f040000 {
+                       compatible = "snps,spear-ahci";
+                       reg = <0x0 0x1f040000 0x0 0x10000>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <75>;
+                       status = "disabled";
+               };
+
+               ehci0: usb@1f050000 {
+                       compatible = "generic-ehci";
+                       reg = <0x0 0x1f050000 0x0 0x8000>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <71>;
+                       status = "disabled";
+               };
+
+               ohci0: usb@1f058000 {
+                       compatible = "generic-ohci";
+                       reg = <0x0 0x1f058000 0x0 0x8000>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <72>;
+                       status = "disabled";
+               };
+
+               uart0: serial@1ff40800 {
+                       compatible = "ns16550a";
+                       reg = <0x0 0x1ff40800 0x0 0x10>;
+                       clock-frequency = <100000000>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <2>;
+                       no-loopback-test;
+                       status = "disabled";
+               };
+
+               i2c0: i2c@1ff48000 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff48000 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <14>;
+                       status = "disabled";
+               };
+
+               i2c@1ff48800 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff48800 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <15>;
+                       status = "disabled";
+               };
+
+               i2c@1ff49000 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff49000 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <16>;
+                       status = "disabled";
+               };
+
+               i2c@1ff49800 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff49800 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <17>;
+                       status = "disabled";
+               };
+
+               i2c@1ff4a000 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff4a000 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <18>;
+                       status = "disabled";
+               };
+
+               i2c@1ff4a800 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1ff4a800 0x0 0x0800>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <19>;
+                       status = "disabled";
+               };
+
+               pmc: power-management@1ff6c000 {
+                       compatible = "loongson,ls2k0500-pmc", "syscon";
+                       reg = <0x0 0x1ff6c000 0x0 0x58>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <56>;
+                       loongson,suspend-address = <0x0 0x1c000500>;
+
+                       syscon-reboot {
+                               compatible = "syscon-reboot";
+                               offset = <0x30>;
+                               mask = <0x1>;
+                       };
+
+                       syscon-poweroff {
+                               compatible = "syscon-poweroff";
+                               regmap = <&pmc>;
+                               offset = <0x14>;
+                               mask = <0x3c00>;
+                               value = <0x3c00>;
+                       };
+               };
+
+               rtc0: rtc@1ff6c100 {
+                       compatible = "loongson,ls2k0500-rtc", "loongson,ls7a-rtc";
+                       reg = <0x0 0x1ff6c100 0x0 0x100>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <35>;
+                       status = "disabled";
+               };
+
+               pcie@1a000000 {
+                       compatible = "loongson,ls2k-pci";
+                       reg = <0x0 0x1a000000 0x0 0x02000000>,
+                             <0xfe 0x0 0x0 0x20000000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       bus-range = <0x0 0x5>;
+                       ranges = <0x01000000 0x0 0x00004000 0x0 0x16404000 0x0 0x00004000>,
+                                <0x02000000 0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>;
+
+                       pcie@0,0 {
+                               reg = <0x0000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&eiointc>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &eiointc 81>;
+                               ranges;
+                       };
+
+                       pcie@1,0 {
+                               reg = <0x0800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&eiointc>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &eiointc 82>;
+                               ranges;
+                       };
+               };
+       };
+};
diff --git a/src/loongarch/loongson-2k1000-ref.dts b/src/loongarch/loongson-2k1000-ref.dts
new file mode 100644 (file)
index 0000000..ed4d324
--- /dev/null
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include "loongson-2k1000.dtsi"
+
+/ {
+       compatible = "loongson,ls2k1000-ref", "loongson,ls2k1000";
+       model = "Loongson-2K1000 Reference Board";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@200000 {
+               device_type = "memory";
+               reg = <0x0 0x00200000 0x0 0x06e00000>,
+                     <0x0 0x08000000 0x0 0x07000000>,
+                     <0x0 0x90000000 0x1 0xe0000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x2000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&gmac0 {
+       status = "okay";
+
+       phy-mode = "rgmii";
+       phy-handle = <&phy0>;
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
+       };
+};
+
+&gmac1 {
+       status = "okay";
+
+       phy-mode = "rgmii";
+       phy-handle = <&phy1>;
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               phy1: ethernet-phy@1 {
+                       reg = <16>;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       pinctrl-0 = <&i2c0_pins_default>;
+       pinctrl-names = "default";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       eeprom@57 {
+               compatible = "atmel,24c16";
+               reg = <0x57>;
+               pagesize = <16>;
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       spidev@0 {
+               compatible = "rohm,dh2228fv";
+               spi-max-frequency = <100000000>;
+               reg = <0>;
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&clk {
+       status = "okay";
+};
+
+&rtc0 {
+       status = "okay";
+};
+
+&pctrl {
+       status = "okay";
+
+       sdio_pins_default: sdio-pins {
+               sdio-pinmux {
+                       groups = "sdio";
+                       function = "sdio";
+               };
+               sdio-det-pinmux {
+                       groups = "pwm2";
+                       function = "gpio";
+               };
+       };
+
+       pwm1_pins_default: pwm1-pins {
+               pinmux {
+                       groups = "pwm1";
+                       function = "pwm1";
+               };
+       };
+
+       pwm0_pins_default: pwm0-pins {
+               pinmux {
+                       groups = "pwm0";
+                       function = "pwm0";
+               };
+       };
+
+       i2c1_pins_default: i2c1-pins {
+               pinmux {
+                       groups = "i2c1";
+                       function = "i2c1";
+               };
+       };
+
+       i2c0_pins_default: i2c0-pins {
+               pinmux {
+                       groups = "i2c0";
+                       function = "i2c0";
+               };
+       };
+
+       nand_pins_default: nand-pins {
+               pinmux {
+                       groups = "nand";
+                       function = "nand";
+               };
+       };
+
+       hda_pins_default: hda-pins {
+               grp0-pinmux {
+                       groups = "hda";
+                       function = "hda";
+               };
+               grp1-pinmux {
+                       groups = "i2s";
+                       function = "gpio";
+               };
+       };
+};
diff --git a/src/loongarch/loongson-2k1000.dtsi b/src/loongarch/loongson-2k1000.dtsi
new file mode 100644 (file)
index 0000000..49a70f8
--- /dev/null
@@ -0,0 +1,492 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/loongson,ls2k-clk.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "loongson,la264";
+                       device_type = "cpu";
+                       reg= <0x0>;
+                       clocks = <&clk LOONGSON2_NODE_CLK>;
+               };
+
+               cpu1: cpu@1 {
+                       compatible = "loongson,la264";
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       clocks = <&clk LOONGSON2_NODE_CLK>;
+               };
+       };
+
+       ref_100m: clock-ref-100m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+               clock-output-names = "ref_100m";
+       };
+
+       cpuintc: interrupt-controller {
+               compatible = "loongson,cpu-interrupt-controller";
+               #interrupt-cells = <1>;
+               interrupt-controller;
+       };
+
+       /* i2c of the dvi eeprom edid */
+       i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               scl-gpios = <&gpio0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&gpio0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <5>;        /* ~100 kHz */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       /* i2c of the eeprom edid */
+       i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               scl-gpios = <&gpio0 33 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&gpio0 32 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <5>;        /* ~100 kHz */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&tsensor 0>;
+
+                       trips {
+                               cpu_alert: cpu-alert {
+                                       temperature = <33000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu_crit: cpu-crit {
+                                       temperature = <85000>;
+                                       hysteresis = <5000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
+       bus@10000000 {
+               compatible = "simple-bus";
+               ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
+                        <0x0 0x02000000 0x0 0x02000000 0x0 0x02000000>,
+                        <0x0 0x20000000 0x0 0x20000000 0x0 0x10000000>,
+                        <0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>,
+                        <0xfe 0x0 0xfe 0x0 0x0 0x40000000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-coherent;
+
+               liointc0: interrupt-controller@1fe01400 {
+                       compatible = "loongson,liointc-2.0";
+                       reg = <0x0 0x1fe01400 0x0 0x40>,
+                             <0x0 0x1fe01040 0x0 0x8>,
+                             <0x0 0x1fe01140 0x0 0x8>;
+                       reg-names = "main", "isr0", "isr1";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <2>;
+                       interrupt-names = "int0";
+                       loongson,parent_int_map = <0xffffffff>, /* int0 */
+                                                 <0x00000000>, /* int1 */
+                                                 <0x00000000>, /* int2 */
+                                                 <0x00000000>; /* int3 */
+               };
+
+               liointc1: interrupt-controller@1fe01440 {
+                       compatible = "loongson,liointc-2.0";
+                       reg = <0x0 0x1fe01440 0x0 0x40>,
+                             <0x0 0x1fe01048 0x0 0x8>,
+                             <0x0 0x1fe01148 0x0 0x8>;
+                       reg-names = "main", "isr0", "isr1";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <3>;
+                       interrupt-names = "int1";
+                       loongson,parent_int_map = <0x00000000>, /* int0 */
+                                                 <0xffffffff>, /* int1 */
+                                                 <0x00000000>, /* int2 */
+                                                 <0x00000000>; /* int3 */
+               };
+
+               chipid@1fe00000 {
+                       compatible = "loongson,ls2k-chipid";
+                       reg = <0x0 0x1fe00000 0x0 0x30>;
+                       little-endian;
+               };
+
+               pctrl: pinctrl@1fe00420 {
+                       compatible = "loongson,ls2k-pinctrl";
+                       reg = <0x0 0x1fe00420 0x0 0x18>;
+                       status = "disabled";
+               };
+
+               clk: clock-controller@1fe00480 {
+                       compatible = "loongson,ls2k-clk";
+                       reg = <0x0 0x1fe00480 0x0 0x58>;
+                       #clock-cells = <1>;
+                       clocks = <&ref_100m>;
+                       clock-names = "ref_100m";
+                       status = "disabled";
+               };
+
+               gpio0: gpio@1fe00500 {
+                       compatible = "loongson,ls2k-gpio";
+                       reg = <0x0 0x1fe00500 0x0 0x38>;
+                       ngpios = <64>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pctrl 0x0 0x0 15>,
+                                     <&pctrl 16 16 15>,
+                                     <&pctrl 32 32 10>,
+                                     <&pctrl 44 44 20>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <28 IRQ_TYPE_LEVEL_HIGH>,
+                                    <29 IRQ_TYPE_LEVEL_HIGH>,
+                                    <30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <>,
+                                    <>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>,
+                                    <27 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               tsensor: thermal-sensor@1fe01500 {
+                       compatible = "loongson,ls2k1000-thermal";
+                       reg = <0x0 0x1fe01500 0x0 0x30>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               dma-controller@1fe00c00 {
+                       compatible = "loongson,ls2k1000-apbdma";
+                       reg = <0x0 0x1fe00c00 0x0 0x8>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe00c10 {
+                       compatible = "loongson,ls2k1000-apbdma";
+                       reg = <0x0 0x1fe00c10 0x0 0x8>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe00c20 {
+                       compatible = "loongson,ls2k1000-apbdma";
+                       reg = <0x0 0x1fe00c20 0x0 0x8>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe00c30 {
+                       compatible = "loongson,ls2k1000-apbdma";
+                       reg = <0x0 0x1fe00c30 0x0 0x8>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe00c40 {
+                       compatible = "loongson,ls2k1000-apbdma";
+                       reg = <0x0 0x1fe00c40 0x0 0x8>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               uart0: serial@1fe20000 {
+                       compatible = "ns16550a";
+                       reg = <0x0 0x1fe20000 0x0 0x10>;
+                       clock-frequency = <125000000>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <0x0 IRQ_TYPE_LEVEL_HIGH>;
+                       no-loopback-test;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@1fe21000 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1fe21000 0x0 0x8>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@1fe21800 {
+                       compatible = "loongson,ls2k-i2c";
+                       reg = <0x0 0x1fe21800 0x0 0x8>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               pmc: power-management@1fe27000 {
+                       compatible = "loongson,ls2k1000-pmc", "loongson,ls2k0500-pmc", "syscon";
+                       reg = <0x0 0x1fe27000 0x0 0x58>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+                       loongson,suspend-address = <0x0 0x1c000500>;
+
+                       syscon-reboot {
+                               compatible = "syscon-reboot";
+                               offset = <0x30>;
+                               mask = <0x1>;
+                       };
+
+                       syscon-poweroff {
+                               compatible = "syscon-poweroff";
+                               regmap = <&pmc>;
+                               offset = <0x14>;
+                               mask = <0x3c00>;
+                               value = <0x3c00>;
+                       };
+               };
+
+               rtc0: rtc@1fe27800 {
+                       compatible = "loongson,ls2k1000-rtc";
+                       reg = <0x0 0x1fe27800 0x0 0x100>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi0: spi@1fff0220 {
+                       compatible = "loongson,ls2k1000-spi";
+                       reg = <0x0 0x1fff0220 0x0 0x10>;
+                       clocks = <&clk LOONGSON2_BOOT_CLK>;
+                       status = "disabled";
+               };
+
+               pcie@1a000000 {
+                       compatible = "loongson,ls2k-pci";
+                       reg = <0x0 0x1a000000 0x0 0x02000000>,
+                             <0xfe 0x0 0x0 0x20000000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       bus-range = <0x0 0xff>;
+                       ranges = <0x01000000 0x0 0x00008000 0x0 0x18008000 0x0 0x00008000>,
+                                <0x02000000 0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>;
+
+                       gmac0: ethernet@3,0 {
+                               reg = <0x1800 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc0>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
+                                            <13 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "macirq", "eth_lpi";
+                               status = "disabled";
+                       };
+
+                       gmac1: ethernet@3,1 {
+                               reg = <0x1900 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc0>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
+                                            <15 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "macirq", "eth_lpi";
+                               status = "disabled";
+                       };
+
+                       ehci0: usb@4,1 {
+                               reg = <0x2100 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc1>;
+                               interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       ohci0: usb@4,2 {
+                               reg = <0x2200 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc1>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       display@6,0 {
+                               reg = <0x3000 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc0>;
+                               interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       hda@7,0 {
+                               reg = <0x3800 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc0>;
+                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       sata: sata@8,0 {
+                               reg = <0x4000 0x0 0x0 0x0 0x0>;
+                               interrupt-parent = <&liointc0>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       pcie@9,0 {
+                               reg = <0x4800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 0x0 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@a,0 {
+                               reg = <0x5000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&liointc1>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 1 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@b,0 {
+                               reg = <0x5800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&liointc1>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 2 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@c,0 {
+                               reg = <0x6000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&liointc1>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 3 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@d,0 {
+                               reg = <0x6800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&liointc1>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 4 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@e,0 {
+                               reg = <0x7000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&liointc1>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &liointc1 5 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+               };
+       };
+};
diff --git a/src/loongarch/loongson-2k2000-ref.dts b/src/loongarch/loongson-2k2000-ref.dts
new file mode 100644 (file)
index 0000000..dca91ca
--- /dev/null
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include "loongson-2k2000.dtsi"
+
+/ {
+       compatible = "loongson,ls2k2000-ref", "loongson,ls2k2000";
+       model = "Loongson-2K2000 Reference Board";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@200000 {
+               device_type = "memory";
+               reg = <0x0 0x00200000 0x0 0x0ee00000>,
+                     <0x0 0x90000000 0x0 0x70000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x2000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&rtc0 {
+       status = "okay";
+};
+
+&xhci0 {
+       status = "okay";
+};
+
+&xhci1 {
+       status = "okay";
+};
+
+&gmac0 {
+       status = "okay";
+};
+
+&gmac1 {
+       status = "okay";
+};
+
+&gmac2 {
+       status = "okay";
+};
diff --git a/src/loongarch/loongson-2k2000.dtsi b/src/loongarch/loongson-2k2000.dtsi
new file mode 100644 (file)
index 0000000..a231949
--- /dev/null
@@ -0,0 +1,300 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2023 Loongson Technology Corporation Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@1 {
+                       compatible = "loongson,la364";
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       clocks = <&cpu_clk>;
+               };
+
+               cpu1: cpu@2 {
+                       compatible = "loongson,la364";
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       clocks = <&cpu_clk>;
+               };
+       };
+
+       cpu_clk: cpu-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <1400000000>;
+       };
+
+       cpuintc: interrupt-controller {
+               compatible = "loongson,cpu-interrupt-controller";
+               #interrupt-cells = <1>;
+               interrupt-controller;
+       };
+
+       bus@10000000 {
+               compatible = "simple-bus";
+               ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
+                        <0x0 0x02000000 0x0 0x02000000 0x0 0x02000000>,
+                        <0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>,
+                        <0xfe 0x0 0xfe 0x0 0x0 0x40000000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               pmc: power-management@100d0000 {
+                       compatible = "loongson,ls2k2000-pmc", "loongson,ls2k0500-pmc", "syscon";
+                       reg = <0x0 0x100d0000 0x0 0x58>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <47>;
+                       loongson,suspend-address = <0x0 0x1c000500>;
+
+                       syscon-reboot {
+                               compatible = "syscon-reboot";
+                               offset = <0x30>;
+                               mask = <0x1>;
+                       };
+
+                       syscon-poweroff {
+                               compatible = "syscon-poweroff";
+                               regmap = <&pmc>;
+                               offset = <0x14>;
+                               mask = <0x3c00>;
+                               value = <0x3c00>;
+                       };
+               };
+
+               liointc: interrupt-controller@1fe01400 {
+                       compatible = "loongson,liointc-1.0";
+                       reg = <0x0 0x1fe01400 0x0 0x64>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <2>;
+                       interrupt-names = "int0";
+                       loongson,parent_int_map = <0xffffffff>, /* int0 */
+                                                 <0x00000000>, /* int1 */
+                                                 <0x00000000>, /* int2 */
+                                                 <0x00000000>; /* int3 */
+               };
+
+               eiointc: interrupt-controller@1fe01600 {
+                       compatible = "loongson,ls2k2000-eiointc";
+                       reg = <0x0 0x1fe01600 0x0 0xea00>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&cpuintc>;
+                       interrupts = <3>;
+               };
+
+               pic: interrupt-controller@10000000 {
+                       compatible = "loongson,pch-pic-1.0";
+                       reg = <0x0 0x10000000 0x0 0x400>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       loongson,pic-base-vec = <0>;
+                       interrupt-parent = <&eiointc>;
+               };
+
+               msi: msi-controller@1fe01140 {
+                       compatible = "loongson,pch-msi-1.0";
+                       reg = <0x0 0x1fe01140 0x0 0x8>;
+                       msi-controller;
+                       loongson,msi-base-vec = <64>;
+                       loongson,msi-num-vecs = <192>;
+                       interrupt-parent = <&eiointc>;
+               };
+
+               rtc0: rtc@100d0100 {
+                       compatible = "loongson,ls2k2000-rtc", "loongson,ls7a-rtc";
+                       reg = <0x0 0x100d0100 0x0 0x100>;
+                       interrupt-parent = <&pic>;
+                       interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart0: serial@1fe001e0 {
+                       compatible = "ns16550a";
+                       reg = <0x0 0x1fe001e0 0x0 0x10>;
+                       clock-frequency = <100000000>;
+                       interrupt-parent = <&liointc>;
+                       interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+                       no-loopback-test;
+                       status = "disabled";
+               };
+
+               pcie@1a000000 {
+                       compatible = "loongson,ls2k-pci";
+                       reg = <0x0 0x1a000000 0x0 0x02000000>,
+                             <0xfe 0x0 0x0 0x20000000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       bus-range = <0x0 0xff>;
+                       ranges = <0x01000000 0x0 0x00008000 0x0 0x18400000 0x0 0x00008000>,
+                                <0x02000000 0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>;
+
+                       gmac0: ethernet@3,0 {
+                               reg = <0x1800 0x0 0x0 0x0 0x0>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       gmac1: ethernet@3,1 {
+                               reg = <0x1900 0x0 0x0 0x0 0x0>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       gmac2: ethernet@3,2 {
+                               reg = <0x1a00 0x0 0x0 0x0 0x0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       xhci0: usb@4,0 {
+                               reg = <0x2000 0x0 0x0 0x0 0x0>;
+                               interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       xhci1: usb@19,0 {
+                               reg = <0xc800 0x0 0x0 0x0 0x0>;
+                               interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       display@6,1 {
+                               reg = <0x3100 0x0 0x0 0x0 0x0>;
+                               interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       hda@7,0 {
+                               reg = <0x3800 0x0 0x0 0x0 0x0>;
+                               interrupts = <58 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       sata: sata@8,0 {
+                               reg = <0x4000 0x0 0x0 0x0 0x0>;
+                               interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-parent = <&pic>;
+                               status = "disabled";
+                       };
+
+                       pcie@9,0 {
+                               reg = <0x4800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 32 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@a,0 {
+                               reg = <0x5000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 33 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@b,0 {
+                               reg = <0x5800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 34 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@c,0 {
+                               reg = <0x6000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 35 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@d,0 {
+                               reg = <0x6800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 36 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@e,0 {
+                               reg = <0x7000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 37 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@f,0 {
+                               reg = <0x7800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 40 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+
+                       pcie@10,0 {
+                               reg = <0x8000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               interrupt-parent = <&pic>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0x0 0x0 0x0 0x0>;
+                               interrupt-map = <0x0 0x0 0x0 0x0 &pic 30 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+                       };
+               };
+       };
+};
index d552044c5afc085c2b2d14762f500a311d163697..aa5152ca8120110f879476ff38136b1258efbd54 100644 (file)
                reg = <0xf0000 0x1000>;
                interrupts = <18 2 0 0>;
                fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x30061>;
-               fsl,tmu-calibration = <0x00000000 0x0000000f
-                                      0x00000001 0x00000017
-                                      0x00000002 0x0000001e
-                                      0x00000003 0x00000026
-                                      0x00000004 0x0000002e
-                                      0x00000005 0x00000035
-                                      0x00000006 0x0000003d
-                                      0x00000007 0x00000044
-                                      0x00000008 0x0000004c
-                                      0x00000009 0x00000053
-                                      0x0000000a 0x0000005b
-                                      0x0000000b 0x00000064
-
-                                      0x00010000 0x00000011
-                                      0x00010001 0x0000001c
-                                      0x00010002 0x00000024
-                                      0x00010003 0x0000002b
-                                      0x00010004 0x00000034
-                                      0x00010005 0x00000039
-                                      0x00010006 0x00000042
-                                      0x00010007 0x0000004c
-                                      0x00010008 0x00000051
-                                      0x00010009 0x0000005a
-                                      0x0001000a 0x00000063
-
-                                      0x00020000 0x00000013
-                                      0x00020001 0x00000019
-                                      0x00020002 0x00000024
-                                      0x00020003 0x0000002c
-                                      0x00020004 0x00000035
-                                      0x00020005 0x0000003d
-                                      0x00020006 0x00000046
-                                      0x00020007 0x00000050
-                                      0x00020008 0x00000059
-
-                                      0x00030000 0x00000002
-                                      0x00030001 0x0000000d
-                                      0x00030002 0x00000019
-                                      0x00030003 0x00000024>;
+               fsl,tmu-calibration =
+                               <0x00000000 0x0000000f>,
+                               <0x00000001 0x00000017>,
+                               <0x00000002 0x0000001e>,
+                               <0x00000003 0x00000026>,
+                               <0x00000004 0x0000002e>,
+                               <0x00000005 0x00000035>,
+                               <0x00000006 0x0000003d>,
+                               <0x00000007 0x00000044>,
+                               <0x00000008 0x0000004c>,
+                               <0x00000009 0x00000053>,
+                               <0x0000000a 0x0000005b>,
+                               <0x0000000b 0x00000064>,
+
+                               <0x00010000 0x00000011>,
+                               <0x00010001 0x0000001c>,
+                               <0x00010002 0x00000024>,
+                               <0x00010003 0x0000002b>,
+                               <0x00010004 0x00000034>,
+                               <0x00010005 0x00000039>,
+                               <0x00010006 0x00000042>,
+                               <0x00010007 0x0000004c>,
+                               <0x00010008 0x00000051>,
+                               <0x00010009 0x0000005a>,
+                               <0x0001000a 0x00000063>,
+
+                               <0x00020000 0x00000013>,
+                               <0x00020001 0x00000019>,
+                               <0x00020002 0x00000024>,
+                               <0x00020003 0x0000002c>,
+                               <0x00020004 0x00000035>,
+                               <0x00020005 0x0000003d>,
+                               <0x00020006 0x00000046>,
+                               <0x00020007 0x00000050>,
+                               <0x00020008 0x00000059>,
+
+                               <0x00030000 0x00000002>,
+                               <0x00030001 0x0000000d>,
+                               <0x00030002 0x00000019>,
+                               <0x00030003 0x00000024>;
                #thermal-sensor-cells = <1>;
        };
 
index ad0ab33336b88c0e49d27e5d0a76ece3d5d73f12..77678862320401428152d775862deb6ba1b026d8 100644 (file)
                reg = <0xf0000 0x1000>;
                interrupts = <18 2 0 0>;
                fsl,tmu-range = <0xa0000 0x90026 0x8004a 0x1006a>;
-               fsl,tmu-calibration = <0x00000000 0x00000025
-                                      0x00000001 0x00000028
-                                      0x00000002 0x0000002d
-                                      0x00000003 0x00000031
-                                      0x00000004 0x00000036
-                                      0x00000005 0x0000003a
-                                      0x00000006 0x00000040
-                                      0x00000007 0x00000044
-                                      0x00000008 0x0000004a
-                                      0x00000009 0x0000004f
-                                      0x0000000a 0x00000054
-
-                                      0x00010000 0x0000000d
-                                      0x00010001 0x00000013
-                                      0x00010002 0x00000019
-                                      0x00010003 0x0000001f
-                                      0x00010004 0x00000025
-                                      0x00010005 0x0000002d
-                                      0x00010006 0x00000033
-                                      0x00010007 0x00000043
-                                      0x00010008 0x0000004b
-                                      0x00010009 0x00000053
-
-                                      0x00020000 0x00000010
-                                      0x00020001 0x00000017
-                                      0x00020002 0x0000001f
-                                      0x00020003 0x00000029
-                                      0x00020004 0x00000031
-                                      0x00020005 0x0000003c
-                                      0x00020006 0x00000042
-                                      0x00020007 0x0000004d
-                                      0x00020008 0x00000056
-
-                                      0x00030000 0x00000012
-                                      0x00030001 0x0000001d>;
+               fsl,tmu-calibration =
+                               <0x00000000 0x00000025>,
+                               <0x00000001 0x00000028>,
+                               <0x00000002 0x0000002d>,
+                               <0x00000003 0x00000031>,
+                               <0x00000004 0x00000036>,
+                               <0x00000005 0x0000003a>,
+                               <0x00000006 0x00000040>,
+                               <0x00000007 0x00000044>,
+                               <0x00000008 0x0000004a>,
+                               <0x00000009 0x0000004f>,
+                               <0x0000000a 0x00000054>,
+
+                               <0x00010000 0x0000000d>,
+                               <0x00010001 0x00000013>,
+                               <0x00010002 0x00000019>,
+                               <0x00010003 0x0000001f>,
+                               <0x00010004 0x00000025>,
+                               <0x00010005 0x0000002d>,
+                               <0x00010006 0x00000033>,
+                               <0x00010007 0x00000043>,
+                               <0x00010008 0x0000004b>,
+                               <0x00010009 0x00000053>,
+
+                               <0x00020000 0x00000010>,
+                               <0x00020001 0x00000017>,
+                               <0x00020002 0x0000001f>,
+                               <0x00020003 0x00000029>,
+                               <0x00020004 0x00000031>,
+                               <0x00020005 0x0000003c>,
+                               <0x00020006 0x00000042>,
+                               <0x00020007 0x0000004d>,
+                               <0x00020008 0x00000056>,
+
+                               <0x00030000 0x00000012>,
+                               <0x00030001 0x0000001d>;
                #thermal-sensor-cells = <1>;
        };
 
index dce96f27cc89a4af44c61209be59a105c49d05ca..222a39d90f85da822fca471d232f4ab267ef33bf 100644 (file)
        status = "okay";
 };
 
+&syscontroller_qspi {
+       /*
+        * The flash *is* there, but Icicle kits that have engineering sample
+        * silicon (write?) access to this flash to non-functional. The system
+        * controller itself can actually access it, but the MSS cannot write
+        * an image there. Instantiating a coreQSPI in the fabric & connecting
+        * it to the flash instead should work though. Pre-production or later
+        * silicon does not have this issue.
+        */
+       status = "disabled";
+
+       sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <20000000>;
+               spi-rx-bus-width = <1>;
+               reg = <0>;
+       };
+};
+
 &usb {
        status = "okay";
        dr_mode = "host";
index 266489d43912fc4457cb2bad3cc8d9d67b8d4dcd..59fd2d4ea523b8a6f6a4c63ed098d8bb3032c00c 100644 (file)
                mboxes = <&mbox 0>;
        };
 
+       scbclk: mssclkclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <80000000>;
+       };
+
        soc {
                #address-cells = <2>;
                #size-cells = <2>;
                        #mbox-cells = <1>;
                        status = "disabled";
                };
+
+               syscontroller_qspi: spi@37020100 {
+                       compatible = "microchip,mpfs-qspi", "microchip,coreqspi-rtl-v2";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0 0x37020100 0x0 0x100>;
+                       interrupt-parent = <&plic>;
+                       interrupts = <110>;
+                       clocks = <&scbclk>;
+                       status = "disabled";
+               };
        };
 };
index b0796015e36b1bfdbe3ce6caedd8362a453974ac..a92cfcfc021b4c3847a48828a45948da169c882f 100644 (file)
                        reg = <0x0>;
                        status = "okay";
                        riscv,isa = "rv64imafdc";
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
+                                              "zicntr", "zicsr", "zifencei",
+                                              "zihpm";
                        mmu-type = "riscv,sv39";
                        i-cache-size = <0x8000>;
                        i-cache-line-size = <0x40>;
index 07387f9c135ca7e8ddf7d45de10ccdb933a2e4d4..72b87b08ab444ef1dc1ed200a6e8b3cbb9bfc73f 100644 (file)
                interrupt-parent = <&gpio>;
                interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
                interrupt-controller;
+               #interrupt-cells = <2>;
 
                onkey {
                        compatible = "dlg,da9063-onkey";
index aec6401a467b02a17d2bd25a369222bca815d83b..165e9e320a8c72d7f56ecb61fd86e7d58c8c4333 100644 (file)
  * Copyright (C) 2023 Jisheng Zhang <jszhang@kernel.org>
  */
 
-#include <dt-bindings/interrupt-controller/irq.h>
+#include "cv18xx.dtsi"
 
 / {
        compatible = "sophgo,cv1800b";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       cpus: cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               timebase-frequency = <25000000>;
-
-               cpu0: cpu@0 {
-                       compatible = "thead,c906", "riscv";
-                       device_type = "cpu";
-                       reg = <0>;
-                       d-cache-block-size = <64>;
-                       d-cache-sets = <512>;
-                       d-cache-size = <65536>;
-                       i-cache-block-size = <64>;
-                       i-cache-sets = <128>;
-                       i-cache-size = <32768>;
-                       mmu-type = "riscv,sv39";
-                       riscv,isa = "rv64imafdc";
-                       riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
-                                              "zifencei", "zihpm";
-
-                       cpu0_intc: interrupt-controller {
-                               compatible = "riscv,cpu-intc";
-                               interrupt-controller;
-                               #interrupt-cells = <1>;
-                       };
-               };
-       };
-
-       osc: oscillator {
-               compatible = "fixed-clock";
-               clock-output-names = "osc_25m";
-               #clock-cells = <0>;
-       };
-
-       soc {
-               compatible = "simple-bus";
-               interrupt-parent = <&plic>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               dma-noncoherent;
-               ranges;
-
-               uart0: serial@4140000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x04140000 0x100>;
-                       interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart1: serial@4150000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x04150000 0x100>;
-                       interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart2: serial@4160000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x04160000 0x100>;
-                       interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart3: serial@4170000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x04170000 0x100>;
-                       interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart4: serial@41c0000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x041c0000 0x100>;
-                       interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
+};
 
-               plic: interrupt-controller@70000000 {
-                       compatible = "sophgo,cv1800b-plic", "thead,c900-plic";
-                       reg = <0x70000000 0x4000000>;
-                       interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       riscv,ndev = <101>;
-               };
+&plic {
+       compatible = "sophgo,cv1800b-plic", "thead,c900-plic";
+};
 
-               clint: timer@74000000 {
-                       compatible = "sophgo,cv1800b-clint", "thead,c900-clint";
-                       reg = <0x74000000 0x10000>;
-                       interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>;
-               };
-       };
+&clint {
+       compatible = "sophgo,cv1800b-clint", "thead,c900-clint";
 };
diff --git a/src/riscv/sophgo/cv1812h-huashan-pi.dts b/src/riscv/sophgo/cv1812h-huashan-pi.dts
new file mode 100644 (file)
index 0000000..aa361f3
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 Inochi Amaoto <inochiama@outlook.com>
+ */
+
+/dts-v1/;
+
+#include "cv1812h.dtsi"
+
+/ {
+       model = "Huashan Pi";
+       compatible = "sophgo,huashan-pi", "sophgo,cv1812h";
+
+       aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               coprocessor_rtos: region@8fe00000 {
+                       reg = <0x8fe00000 0x200000>;
+                       no-map;
+               };
+       };
+};
+
+&osc {
+       clock-frequency = <25000000>;
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/src/riscv/sophgo/cv1812h.dtsi b/src/riscv/sophgo/cv1812h.dtsi
new file mode 100644 (file)
index 0000000..3e7a942
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 Inochi Amaoto <inochiama@outlook.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "cv18xx.dtsi"
+
+/ {
+       compatible = "sophgo,cv1812h";
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>;
+       };
+};
+
+&plic {
+       compatible = "sophgo,cv1812h-plic", "thead,c900-plic";
+};
+
+&clint {
+       compatible = "sophgo,cv1812h-clint", "thead,c900-clint";
+};
diff --git a/src/riscv/sophgo/cv18xx.dtsi b/src/riscv/sophgo/cv18xx.dtsi
new file mode 100644 (file)
index 0000000..2d6f4a4
--- /dev/null
@@ -0,0 +1,192 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 Jisheng Zhang <jszhang@kernel.org>
+ * Copyright (C) 2023 Inochi Amaoto <inochiama@outlook.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               timebase-frequency = <25000000>;
+
+               cpu0: cpu@0 {
+                       compatible = "thead,c906", "riscv";
+                       device_type = "cpu";
+                       reg = <0>;
+                       d-cache-block-size = <64>;
+                       d-cache-sets = <512>;
+                       d-cache-size = <65536>;
+                       i-cache-block-size = <64>;
+                       i-cache-sets = <128>;
+                       i-cache-size = <32768>;
+                       mmu-type = "riscv,sv39";
+                       riscv,isa = "rv64imafdc";
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
+                                              "zifencei", "zihpm";
+
+                       cpu0_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                       };
+               };
+       };
+
+       osc: oscillator {
+               compatible = "fixed-clock";
+               clock-output-names = "osc_25m";
+               #clock-cells = <0>;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&plic>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               dma-noncoherent;
+               ranges;
+
+               gpio0: gpio@3020000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x3020000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       porta: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio1: gpio@3021000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x3021000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       portb: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <61 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio2: gpio@3022000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x3022000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       portc: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio3: gpio@3023000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x3023000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       portd: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <63 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               uart0: serial@4140000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x04140000 0x100>;
+                       interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&osc>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart1: serial@4150000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x04150000 0x100>;
+                       interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&osc>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart2: serial@4160000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x04160000 0x100>;
+                       interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&osc>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart3: serial@4170000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x04170000 0x100>;
+                       interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&osc>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart4: serial@41c0000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x041c0000 0x100>;
+                       interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&osc>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               plic: interrupt-controller@70000000 {
+                       reg = <0x70000000 0x4000000>;
+                       interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <2>;
+                       riscv,ndev = <101>;
+               };
+
+               clint: timer@74000000 {
+                       reg = <0x74000000 0x10000>;
+                       interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>;
+               };
+       };
+};
index 93256540d07882af2b12a6faf0642d93ddc4970b..ead1cc35d88b2f13bfecf935a6e66e6049a24a75 100644 (file)
                                              <&cpu63_intc 3>;
                };
 
-               clint_mtimer0: timer@70ac000000 {
+               clint_mtimer0: timer@70ac004000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac000000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac004000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu0_intc 7>,
                                              <&cpu1_intc 7>,
                                              <&cpu2_intc 7>,
                                              <&cpu3_intc 7>;
                };
 
-               clint_mtimer1: timer@70ac010000 {
+               clint_mtimer1: timer@70ac014000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac010000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac014000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu4_intc 7>,
                                              <&cpu5_intc 7>,
                                              <&cpu6_intc 7>,
                                              <&cpu7_intc 7>;
                };
 
-               clint_mtimer2: timer@70ac020000 {
+               clint_mtimer2: timer@70ac024000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac020000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac024000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu8_intc 7>,
                                              <&cpu9_intc 7>,
                                              <&cpu10_intc 7>,
                                              <&cpu11_intc 7>;
                };
 
-               clint_mtimer3: timer@70ac030000 {
+               clint_mtimer3: timer@70ac034000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac030000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac034000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu12_intc 7>,
                                              <&cpu13_intc 7>,
                                              <&cpu14_intc 7>,
                                              <&cpu15_intc 7>;
                };
 
-               clint_mtimer4: timer@70ac040000 {
+               clint_mtimer4: timer@70ac044000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac040000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac044000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu16_intc 7>,
                                              <&cpu17_intc 7>,
                                              <&cpu18_intc 7>,
                                              <&cpu19_intc 7>;
                };
 
-               clint_mtimer5: timer@70ac050000 {
+               clint_mtimer5: timer@70ac054000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac050000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac054000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu20_intc 7>,
                                              <&cpu21_intc 7>,
                                              <&cpu22_intc 7>,
                                              <&cpu23_intc 7>;
                };
 
-               clint_mtimer6: timer@70ac060000 {
+               clint_mtimer6: timer@70ac064000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac060000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac064000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu24_intc 7>,
                                              <&cpu25_intc 7>,
                                              <&cpu26_intc 7>,
                                              <&cpu27_intc 7>;
                };
 
-               clint_mtimer7: timer@70ac070000 {
+               clint_mtimer7: timer@70ac074000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac070000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac074000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu28_intc 7>,
                                              <&cpu29_intc 7>,
                                              <&cpu30_intc 7>,
                                              <&cpu31_intc 7>;
                };
 
-               clint_mtimer8: timer@70ac080000 {
+               clint_mtimer8: timer@70ac084000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac080000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac084000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu32_intc 7>,
                                              <&cpu33_intc 7>,
                                              <&cpu34_intc 7>,
                                              <&cpu35_intc 7>;
                };
 
-               clint_mtimer9: timer@70ac090000 {
+               clint_mtimer9: timer@70ac094000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac090000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac094000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu36_intc 7>,
                                              <&cpu37_intc 7>,
                                              <&cpu38_intc 7>,
                                              <&cpu39_intc 7>;
                };
 
-               clint_mtimer10: timer@70ac0a0000 {
+               clint_mtimer10: timer@70ac0a4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0a0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0a4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu40_intc 7>,
                                              <&cpu41_intc 7>,
                                              <&cpu42_intc 7>,
                                              <&cpu43_intc 7>;
                };
 
-               clint_mtimer11: timer@70ac0b0000 {
+               clint_mtimer11: timer@70ac0b4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0b0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0b4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu44_intc 7>,
                                              <&cpu45_intc 7>,
                                              <&cpu46_intc 7>,
                                              <&cpu47_intc 7>;
                };
 
-               clint_mtimer12: timer@70ac0c0000 {
+               clint_mtimer12: timer@70ac0c4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0c0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0c4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu48_intc 7>,
                                              <&cpu49_intc 7>,
                                              <&cpu50_intc 7>,
                                              <&cpu51_intc 7>;
                };
 
-               clint_mtimer13: timer@70ac0d0000 {
+               clint_mtimer13: timer@70ac0d4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0d0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0d4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu52_intc 7>,
                                              <&cpu53_intc 7>,
                                              <&cpu54_intc 7>,
                                              <&cpu55_intc 7>;
                };
 
-               clint_mtimer14: timer@70ac0e0000 {
+               clint_mtimer14: timer@70ac0e4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0e0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0e4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu56_intc 7>,
                                              <&cpu57_intc 7>,
                                              <&cpu58_intc 7>,
                                              <&cpu59_intc 7>;
                };
 
-               clint_mtimer15: timer@70ac0f0000 {
+               clint_mtimer15: timer@70ac0f4000 {
                        compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0f0000 0x00000000 0x00007ff8>;
+                       reg = <0x00000070 0xac0f4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
                        interrupts-extended = <&cpu60_intc 7>,
                                              <&cpu61_intc 7>,
                                              <&cpu62_intc 7>,
index b93ce351a90f48e10ac2e54d108ab78f19506282..42fb61c36068cd7e42dada8025b3d15b9ca2b0fc 100644 (file)
@@ -12,6 +12,8 @@
 
 / {
        aliases {
+               mmc0 = &sdio0;
+               mmc1 = &sdio1;
                serial0 = &uart3;
        };
 
                        label = "ack";
                };
        };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dma-reserved@fa000000 {
+                       reg = <0x0 0xfa000000 0x0 0x1000000>;
+                       no-map;
+               };
+
+               linux,dma@107a000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10 0x7a000000 0x0 0x1000000>;
+                       no-map;
+                       linux,dma-default;
+               };
+       };
+
+       soc {
+               dma-ranges = <0x00 0x80000000 0x00 0x80000000 0x00 0x7a000000>,
+                            <0x00 0xfa000000 0x10 0x7a000000 0x00 0x01000000>,
+                            <0x00 0xfb000000 0x00 0xfb000000 0x07 0x85000000>;
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &gpio {
                };
        };
 
+       sdio0_pins: sdio0-0 {
+               clk-pins {
+                       pinmux = <GPIOMUX(54, GPO_SDIO0_PAD_CCLK_OUT,
+                                 GPO_ENABLE, GPI_NONE)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+               sdio-pins {
+                       pinmux = <GPIOMUX(55, GPO_LOW, GPO_DISABLE,
+                                 GPI_SDIO0_PAD_CARD_DETECT_N)>,
+                                <GPIOMUX(53,
+                                 GPO_SDIO0_PAD_CCMD_OUT,
+                                 GPO_SDIO0_PAD_CCMD_OEN,
+                                 GPI_SDIO0_PAD_CCMD_IN)>,
+                                <GPIOMUX(49,
+                                 GPO_SDIO0_PAD_CDATA_OUT_BIT0,
+                                 GPO_SDIO0_PAD_CDATA_OEN_BIT0,
+                                 GPI_SDIO0_PAD_CDATA_IN_BIT0)>,
+                                <GPIOMUX(50,
+                                 GPO_SDIO0_PAD_CDATA_OUT_BIT1,
+                                 GPO_SDIO0_PAD_CDATA_OEN_BIT1,
+                                 GPI_SDIO0_PAD_CDATA_IN_BIT1)>,
+                                <GPIOMUX(51,
+                                 GPO_SDIO0_PAD_CDATA_OUT_BIT2,
+                                 GPO_SDIO0_PAD_CDATA_OEN_BIT2,
+                                 GPI_SDIO0_PAD_CDATA_IN_BIT2)>,
+                                <GPIOMUX(52,
+                                 GPO_SDIO0_PAD_CDATA_OUT_BIT3,
+                                 GPO_SDIO0_PAD_CDATA_OEN_BIT3,
+                                 GPI_SDIO0_PAD_CDATA_IN_BIT3)>;
+                       bias-pull-up;
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
+       sdio1_pins: sdio1-0 {
+               clk-pins {
+                       pinmux = <GPIOMUX(33, GPO_SDIO1_PAD_CCLK_OUT,
+                                 GPO_ENABLE, GPI_NONE)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+               sdio-pins {
+                       pinmux = <GPIOMUX(29,
+                                 GPO_SDIO1_PAD_CCMD_OUT,
+                                 GPO_SDIO1_PAD_CCMD_OEN,
+                                 GPI_SDIO1_PAD_CCMD_IN)>,
+                                <GPIOMUX(36,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT0,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT0,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT0)>,
+                                <GPIOMUX(30,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT1,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT1,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT1)>,
+                                <GPIOMUX(34,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT2,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT2,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT2)>,
+                                <GPIOMUX(31,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT3,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT3,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT3)>;
+                       bias-pull-up;
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
        uart3_pins: uart3-0 {
                rx-pins {
                        pinmux = <GPIOMUX(13, GPO_LOW, GPO_DISABLE,
        clock-frequency = <27000000>;
 };
 
+&sdio0 {
+       broken-cd;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_pins>;
+       status = "okay";
+};
+
+&sdio1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       cap-power-off-card;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio1_pins>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;
index e68cafe7545f75e5dfbe1147574a0d5f6c3a8a23..8bcf36d07f3f7c38a164a5864974bc60ad11e8b1 100644 (file)
@@ -32,6 +32,7 @@
                        i-tlb-sets = <1>;
                        i-tlb-size = <32>;
                        mmu-type = "riscv,sv39";
+                       next-level-cache = <&ccache>;
                        riscv,isa = "rv64imafdc";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
@@ -60,6 +61,7 @@
                        i-tlb-sets = <1>;
                        i-tlb-size = <32>;
                        mmu-type = "riscv,sv39";
+                       next-level-cache = <&ccache>;
                        riscv,isa = "rv64imafdc";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
                        thermal-sensors = <&sfctemp>;
 
                        trips {
-                               cpu_alert0 {
+                               cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit {
+                               cpu-crit {
                                        /* milliCelsius */
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                };
        };
 
-       osc_sys: osc_sys {
+       osc_sys: osc-sys {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by the board */
                clock-frequency = <0>;
        };
 
-       osc_aud: osc_aud {
+       osc_aud: osc-aud {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by the board */
                clock-frequency = <0>;
        };
 
-       gmac_rmii_ref: gmac_rmii_ref {
+       gmac_rmii_ref: gmac-rmii-ref {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* Should be overridden by the board when needed */
                clock-frequency = <0>;
        };
 
-       gmac_gr_mii_rxclk: gmac_gr_mii_rxclk {
+       gmac_gr_mii_rxclk: gmac-gr-mii-rxclk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* Should be overridden by the board when needed */
                interrupt-parent = <&plic>;
                #address-cells = <2>;
                #size-cells = <2>;
+               dma-noncoherent;
                ranges;
 
                clint: clint@2000000 {
                        compatible = "starfive,jh7100-clint", "sifive,clint0";
                        reg = <0x0 0x2000000 0x0 0x10000>;
-                       interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7
-                                              &cpu1_intc 3 &cpu1_intc 7>;
+                       interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
+                                             <&cpu1_intc 3>, <&cpu1_intc 7>;
+               };
+
+               ccache: cache-controller@2010000 {
+                       compatible = "starfive,jh7100-ccache", "sifive,ccache0", "cache";
+                       reg = <0x0 0x2010000 0x0 0x1000>;
+                       interrupts = <128>, <130>, <131>, <129>;
+                       cache-block-size = <64>;
+                       cache-level = <2>;
+                       cache-sets = <2048>;
+                       cache-size = <2097152>;
+                       cache-unified;
                };
 
                plic: interrupt-controller@c000000 {
                        compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0";
                        reg = <0x0 0xc000000 0x0 0x4000000>;
-                       interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9
-                                              &cpu1_intc 11 &cpu1_intc 9>;
+                       interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>,
+                                             <&cpu1_intc 11>, <&cpu1_intc 9>;
                        interrupt-controller;
                        #address-cells = <0>;
                        #interrupt-cells = <1>;
                        riscv,ndev = <133>;
                };
 
+               sdio0: mmc@10000000 {
+                       compatible = "snps,dw-mshc";
+                       reg = <0x0 0x10000000 0x0 0x10000>;
+                       clocks = <&clkgen JH7100_CLK_SDIO0_AHB>,
+                                <&clkgen JH7100_CLK_SDIO0_CCLKINT_INV>;
+                       clock-names = "biu", "ciu";
+                       interrupts = <4>;
+                       data-addr = <0>;
+                       fifo-depth = <32>;
+                       fifo-watermark-aligned;
+                       status = "disabled";
+               };
+
+               sdio1: mmc@10010000 {
+                       compatible = "snps,dw-mshc";
+                       reg = <0x0 0x10010000 0x0 0x10000>;
+                       clocks = <&clkgen JH7100_CLK_SDIO1_AHB>,
+                                <&clkgen JH7100_CLK_SDIO1_CCLKINT_INV>;
+                       clock-names = "biu", "ciu";
+                       interrupts = <5>;
+                       data-addr = <0>;
+                       fifo-depth = <32>;
+                       fifo-watermark-aligned;
+                       status = "disabled";
+               };
+
                clkgen: clock-controller@11800000 {
                        compatible = "starfive,jh7100-clkgen";
                        reg = <0x0 0x11800000 0x0 0x10000>;
index 45213cdf50dc75a9fa6610710a4d0cbe58b44c51..74ed3b9264d8f15ee10400b4bf5fcf855b7cecd0 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit {
+                               cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
index 70e8042c83046be5ba2c3e09953fd1740b04765a..d9b4de9e4757421dfffdf68a6ddfe574a9f28822 100644 (file)
        clock-frequency = <62500000>;
 };
 
+&sdhci_clk {
+       clock-frequency = <198000000>;
+};
+
 &uart_sclk {
        clock-frequency = <100000000>;
 };
        status = "okay";
 };
 
+&emmc {
+       bus-width = <8>;
+       max-frequency = <198000000>;
+       mmc-hs400-1_8v;
+       non-removable;
+       no-sdio;
+       no-sd;
+       status = "okay";
+};
+
+&sdio0 {
+       bus-width = <4>;
+       max-frequency = <198000000>;
+       status = "okay";
+};
+
 &uart0 {
        status = "okay";
 };
index a802ab1104294bc17e81d6c5e8c58d0869941bd1..1365d3a512a3b9df7fffdcfa2262f822fd819a9d 100644 (file)
        clock-frequency = <62500000>;
 };
 
+&sdhci_clk {
+       clock-frequency = <198000000>;
+};
+
 &uart_sclk {
        clock-frequency = <100000000>;
 };
 &dmac0 {
        status = "okay";
 };
+
+&emmc {
+       bus-width = <8>;
+       max-frequency = <198000000>;
+       mmc-hs400-1_8v;
+       non-removable;
+       no-sdio;
+       no-sd;
+       status = "okay";
+};
+
+&sdio0 {
+       bus-width = <4>;
+       max-frequency = <198000000>;
+       status = "okay";
+};
index ba4d2c673ac8d33e229765bfdcff674aaf40f93c..8b915e206f3a01a1f7cfb5a3a78217b3df2e26a0 100644 (file)
                #clock-cells = <0>;
        };
 
+       sdhci_clk: sdhci-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <198000000>;
+               clock-output-names = "sdhci_clk";
+               #clock-cells = <0>;
+       };
+
        soc {
                compatible = "simple-bus";
                interrupt-parent = <&plic>;
                        status = "disabled";
                };
 
+               emmc: mmc@ffe7080000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe7080000 0x0 0x10000>;
+                       interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
+               sdio0: mmc@ffe7090000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe7090000 0x0 0x10000>;
+                       interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
+               sdio1: mmc@ffe70a0000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe70a0000 0x0 0x10000>;
+                       interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
                timer0: timer@ffefc32000 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc32000 0x0 0x14>;